Package net.sf.saxon.expr.flwor
Class LetClause
- java.lang.Object
-
- net.sf.saxon.expr.flwor.Clause
-
- net.sf.saxon.expr.flwor.LetClause
-
public class LetClause extends Clause
A "let" clause in a FLWOR expression
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.sf.saxon.expr.flwor.Clause
Clause.ClauseName
-
-
Constructor Summary
Constructors Constructor Description LetClause()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Collect information about the navigation paths followed by this clause, for document projection purposesLetClause
copy(FLWORExpression flwor, RebindingMap rebindings)
Create a copy of this clausevoid
evaluateRangeVariable(XPathContext context)
void
explain(ExpressionPresenter out)
Diagnostic print of expression structure.void
gatherVariableReferences(ExpressionVisitor visitor, Binding binding, java.util.List<VariableReference> references)
Build a list of all references to a variables declared in this clauseClause.ClauseName
getClauseKey()
Get a keyword identifying what kind of clause this isSequenceEvaluator
getEvaluator()
TuplePull
getPullStream(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 modifiesTuplePush
getPushStream(TuplePush destination, Outputter output, XPathContext context)
Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple streamLocalVariableBinding
getRangeVariable()
LocalVariableBinding[]
getRangeVariables()
Get the number of variables bound by this clauseExpression
getSequence()
void
initSequence(FLWORExpression flwor, Expression sequence)
void
processOperands(OperandProcessor processor)
Process the subexpressions of this clausevoid
refineVariableType(ExpressionVisitor visitor, java.util.List<VariableReference> references, Expression returnExpr)
Supply improved type information to the expressions that contain references to the variables declared in this clausevoid
setRangeVariable(LocalVariableBinding binding)
void
setSequence(Expression sequence)
java.lang.String
toShortString()
Get a short string representation of the clausejava.lang.String
toString()
void
typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo)
Type-check the expression-
Methods inherited from class net.sf.saxon.expr.flwor.Clause
containsNonInlineableVariableReference, getConfiguration, getLocation, getPackageData, getTraceInfo, isRepeated, optimize, setLocation, setPackageData, setRepeated
-
-
-
-
Method Detail
-
getClauseKey
public Clause.ClauseName getClauseKey()
Description copied from class:Clause
Get a keyword identifying what kind of clause this is- Specified by:
getClauseKey
in classClause
- Returns:
- the kind of clause
-
getEvaluator
public SequenceEvaluator getEvaluator()
-
copy
public LetClause copy(FLWORExpression flwor, RebindingMap rebindings)
Description copied from class:Clause
Create a copy of this clause
-
initSequence
public void initSequence(FLWORExpression flwor, Expression sequence)
-
setSequence
public void setSequence(Expression sequence)
-
getSequence
public Expression getSequence()
-
setRangeVariable
public void setRangeVariable(LocalVariableBinding binding)
-
getRangeVariable
public LocalVariableBinding getRangeVariable()
-
evaluateRangeVariable
public void evaluateRangeVariable(XPathContext context) throws XPathException
- Throws:
XPathException
-
getRangeVariables
public LocalVariableBinding[] getRangeVariables()
Get the number of variables bound by this clause- Overrides:
getRangeVariables
in classClause
- Returns:
- the number of variable bindings
-
getPullStream
public TuplePull getPullStream(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 modifies- Specified by:
getPullStream
in classClause
- Parameters:
base
- the input tuple streamcontext
- the XPath context- Returns:
- the output tuple stream
-
getPushStream
public TuplePush getPushStream(TuplePush destination, Outputter output, XPathContext context)
Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple stream- Specified by:
getPushStream
in classClause
- Parameters:
destination
- the output tuple streamoutput
- the destination for the resultcontext
- the XPath context- Returns:
- the push tuple stream that implements the functionality of this clause of the FLWOR expression
-
processOperands
public void processOperands(OperandProcessor processor) throws XPathException
Process the subexpressions of this clause- Specified by:
processOperands
in classClause
- Parameters:
processor
- the expression processor used to process the subexpressions- Throws:
XPathException
- if any error is detected
-
typeCheck
public void typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) throws XPathException
Type-check the expression- Overrides:
typeCheck
in classClause
- Parameters:
visitor
- the ExpressionVisitor, providing access to static context informationcontextInfo
- static information about the dynamic context- Throws:
XPathException
- if any error is detected
-
gatherVariableReferences
public void gatherVariableReferences(ExpressionVisitor visitor, Binding binding, java.util.List<VariableReference> references)
Description copied from class:Clause
Build a list of all references to a variables declared in this clause- Overrides:
gatherVariableReferences
in 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, java.util.List<VariableReference> references, Expression returnExpr)
Description copied from class:Clause
Supply improved type information to the expressions that contain references to the variables declared in this clause- Overrides:
refineVariableType
in classClause
- Parameters:
visitor
- the expression visitorreferences
- the list of variable referencesreturnExpr
- the expression in the return clause
-
addToPathMap
public void addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Description copied from class:Clause
Collect information about the navigation paths followed by this clause, for document projection purposes- Specified by:
addToPathMap
in classClause
- Parameters:
pathMap
- the path map in which the data is to be collectedpathMapNodeSet
- the path map node set representing the paths to the context item
-
explain
public void explain(ExpressionPresenter out) throws XPathException
Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.- Specified by:
explain
in classClause
- Parameters:
out
- the expression presenter used to display the structure- Throws:
XPathException
- if any error occurs
-
toShortString
public java.lang.String toShortString()
Description copied from class:Clause
Get a short string representation of the clause- Overrides:
toShortString
in classClause
- Returns:
- a recognizable string
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-