Package net.sf.saxon.expr.flwor
Class LetClause
java.lang.Object
net.sf.saxon.expr.flwor.Clause
net.sf.saxon.expr.flwor.LetClause
A "let" clause in a FLWOR expression
-
Field Summary
Fields inherited from class net.sf.saxon.expr.flwor.Clause
COUNT, FOR, GROUPBYCLAUSE, LET, ORDERBYCLAUSE, TRACE, WHERE, WINDOW -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncopy()Create a copy of this clausevoidDiagnostic print of expression structure.voidgatherVariableReferences(ExpressionVisitor visitor, Binding binding, List<VariableReference> references) Build a list of all references to a variables declared in this clauseintGet a keyword identifying what kind of clause this isgetPullStream(TuplePull base, XPathContext context) Get a tuple stream that implements the functionality of this clause, taking its input from another tuple stream which this clause modifiesgetPushStream(TuplePush destination, XPathContext context) Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple streamGet the number of variables bound by this clausevoidprocessSubExpressions(ExpressionProcessor processor) Process the subexpressions of this clausevoidrefineVariableType(ExpressionVisitor visitor, List<VariableReference> references, Expression returnExpr) Supply improved type information to the expressions that contain references to the variables declared in this clausevoidrefineVariableType(ItemType type, int cardinality, Value constantValue, int properties, ExpressionVisitor visitor) Provide additional information about the type of the variable, typically derived by analyzing the initializer of the variable bindingvoidsetRangeVariable(LocalVariableBinding binding) voidsetSequence(Expression sequence) toString()voidtypeCheck(ExpressionVisitor visitor) Type-check the expressionMethods inherited from class net.sf.saxon.expr.flwor.Clause
containsNonInlineableVariableReference, getLocationId, optimize, setLocationId
-
Constructor Details
-
LetClause
public LetClause()
-
-
Method Details
-
getClauseKey
public int getClauseKey()Description copied from class:ClauseGet a keyword identifying what kind of clause this is- Specified by:
getClauseKeyin classClause- Returns:
- the kind of clause
-
copy
Description copied from class:ClauseCreate a copy of this clause -
setSequence
-
getSequence
-
setRangeVariable
-
getRangeVariable
-
getRangeVariables
Get the number of variables bound by this clause- Overrides:
getRangeVariablesin classClause- Returns:
- the number of variable bindings
-
getPullStream
Get a tuple stream that implements the functionality of this clause, taking its input from another tuple stream which this clause modifies- Specified by:
getPullStreamin classClause- Parameters:
base- the input tuple streamcontext-- Returns:
- the output tuple stream
-
getPushStream
Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple stream- Specified by:
getPushStreamin classClause- Parameters:
destination- the output tuple streamcontext-- Returns:
- the push tuple stream that implements the functionality of this clause of the FLWOR expression
-
processSubExpressions
Process the subexpressions of this clause- Specified by:
processSubExpressionsin classClause- Parameters:
processor- the expression processor used to process the subexpressions- Throws:
XPathException- if any error is detected
-
typeCheck
Type-check the expression- Overrides:
typeCheckin classClause- Parameters:
visitor- the ExpressionVisitor, providing access to static context information- Throws:
XPathException- if any error is detected
-
gatherVariableReferences
public void gatherVariableReferences(ExpressionVisitor visitor, Binding binding, List<VariableReference> references) Description copied from class:ClauseBuild a list of all references to a variables declared in this clause- Overrides:
gatherVariableReferencesin classClause- Parameters:
visitor- the expression visitorbinding- a variable declared in this clausereferences- the list of variable references, initially empty, to which the method will append
-
refineVariableType
public void refineVariableType(ExpressionVisitor visitor, List<VariableReference> references, Expression returnExpr) Description copied from class:ClauseSupply improved type information to the expressions that contain references to the variables declared in this clause- Overrides:
refineVariableTypein classClause- Parameters:
visitor- the expression visitorreferences- the list of variable referencesreturnExpr- the expression in the return clause
-
refineVariableType
public void refineVariableType(ItemType type, int cardinality, Value constantValue, int properties, ExpressionVisitor visitor) Provide additional information about the type of the variable, typically derived by analyzing the initializer of the variable binding- Parameters:
type- the item type of the variablecardinality- the cardinality of the variableconstantValue- the actual value of the variable, if this is known statically, otherwise nullproperties- additional static properties of the variable's initializervisitor- an ExpressionVisitor
-
explain
Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination. -
toString
-