Package net.sf.saxon.expr.flwor
Class ForClause
java.lang.Object
net.sf.saxon.expr.flwor.Clause
net.sf.saxon.expr.flwor.ForClause
A "for" clause in a FLWOR expression
- 
Nested Class SummaryNested classes/interfaces inherited from class net.sf.saxon.expr.flwor.ClauseClause.ClauseName
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected booleanprotected LocalVariableBindingprotected LocalVariableBindingprotected Operandprotected PullEvaluator
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionbooleanaddPredicate(FLWORExpression flwor, ExpressionVisitor visitor, ContextItemStaticInfo contextItemType, Expression condition) Convert where clause to a predicate.voidaddToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet) Collect information about the navigation paths followed by this clause, for document projection purposescopy(FLWORExpression flwor, RebindingMap rebindings) 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 clauseGet a keyword identifying what kind of clause this isprotected SequenceIteratorgetIterator(XPathContext context) Get an iterator over the items or members in the input sequence.Get the position variable (the variable bound by the "at" clause)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 modifiesgetPushStream(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 streamGet the range variable (the primary variable bound by this clause)Get the variables bound by this clausevoidinitSequence(FLWORExpression flwor, Expression sequence) booleanAsk whether the "allowing empty" option is presentvoidprocessOperands(OperandProcessor 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 clausevoidsetAllowingEmpty(boolean option) Say whether the "allowing empty" option is presentvoidsetPositionVariable(LocalVariableBinding binding) Set the position variable (the variable bound by the "at" clause)voidsetRangeVariable(LocalVariableBinding binding) Set the range variable (the primary variable bound by this clause)voidsetSequence(Expression sequence) Get a short string representation of the clausetoString()voidtypeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) Type-check the expressionMethods inherited from class net.sf.saxon.expr.flwor.ClausecontainsNonInlineableVariableReference, getConfiguration, getLocation, getPackageData, getTraceInfo, isRepeated, optimize, setLocation, setPackageData, setRepeated
- 
Field Details- 
rangeVariable
- 
positionVariable
- 
sequenceOp
- 
sequenceOperandEvaluator
- 
allowsEmptyprotected boolean allowsEmpty
 
- 
- 
Constructor Details- 
ForClausepublic ForClause()
 
- 
- 
Method Details- 
getClauseKeyDescription copied from class:ClauseGet a keyword identifying what kind of clause this is- Specified by:
- getClauseKeyin class- Clause
- Returns:
- the kind of clause
 
- 
copyDescription copied from class:ClauseCreate a copy of this clause
- 
initSequence
- 
setSequence
- 
getSequence
- 
getSequenceOp
- 
getIteratorGet an iterator over the items or members in the input sequence.- Parameters:
- context- dynamic evaluation context
- Returns:
- for a simple "for $x" clause, the sequence of items to which $x will be bound. For a "for member ¢x" clause, the sequence of array members, each wrapped as an object value
- Throws:
- XPathException- if evaluation fails
 
- 
setRangeVariableSet the range variable (the primary variable bound by this clause)- Parameters:
- binding- the range variable
 
- 
getRangeVariableGet the range variable (the primary variable bound by this clause)- Returns:
- the range variable
 
- 
setPositionVariableSet the position variable (the variable bound by the "at" clause)- Parameters:
- binding- the position variable, or null if there is no position variable
 
- 
getPositionVariableGet the position variable (the variable bound by the "at" clause)- Returns:
- the position variable, or null if there is no position variable
 
- 
getRangeVariablesGet the variables bound by this clause- Overrides:
- getRangeVariablesin class- Clause
- Returns:
- the variable bindings (1 or 2 depending on whether there is a position variable)
 
- 
setAllowingEmptypublic void setAllowingEmpty(boolean option) Say whether the "allowing empty" option is present- Parameters:
- option- true if the "allowing empty" option is present
 
- 
isAllowingEmptypublic boolean isAllowingEmpty()Ask whether the "allowing empty" option is present- Returns:
- true if the "allowing empty" option is present
 
- 
typeCheckpublic void typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) throws XPathException Type-check the expression- Overrides:
- typeCheckin class- Clause
- Parameters:
- visitor- the ExpressionVisitor, providing access to static context information
- contextInfo- static information about the dynamic context
- Throws:
- XPathException- if any error is detected
 
- 
getPullStreamGet a tuple stream that implements the functionality of this clause, taking its input from another tuple stream which this clause modifies- Specified by:
- getPullStreamin class- Clause
- Parameters:
- base- the input tuple stream
- context- the XPath dynamic context
- Returns:
- the output tuple stream
 
- 
getPushStreamGet a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple stream- Specified by:
- getPushStreamin class- Clause
- Parameters:
- destination- the output tuple stream
- output- the destination for the result
- context- the dynamic evaluation context
- Returns:
- the push tuple stream that implements the functionality of this clause of the FLWOR expression
 
- 
addPredicatepublic boolean addPredicate(FLWORExpression flwor, ExpressionVisitor visitor, ContextItemStaticInfo contextItemType, Expression condition) throws XPathException Convert where clause to a predicate.- Parameters:
- flwor- the FLWOR expression (sans the relevant part of the where clause)
- visitor- the expression visitor
- contextItemType- the item type of the context item
- condition- the predicate to be added. This will always be a single term (never a composite condition using "and"), as the where clause is split into separate terms before calling this method
- Returns:
- true if the expression has been changed, that is, if the where clause has been converted
- Throws:
- XPathException- if an error is encountered
 
- 
processOperandsProcess the subexpressions of this clause- Specified by:
- processOperandsin class- Clause
- Parameters:
- processor- the expression processor used to process the subexpressions
- Throws:
- XPathException- if any error is detected
 
- 
gatherVariableReferencespublic 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 class- Clause
- Parameters:
- visitor- the expression visitor
- binding- a variable declared in this clause
- references- the list of variable references, initially empty, to which the method will append
 
- 
refineVariableTypepublic 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 class- Clause
- Parameters:
- visitor- the expression visitor
- references- the list of variable references
- returnExpr- the expression in the return clause
 
- 
addToPathMapDescription copied from class:ClauseCollect information about the navigation paths followed by this clause, for document projection purposes- Specified by:
- addToPathMapin class- Clause
- Parameters:
- pathMap- the path map in which the data is to be collected
- pathMapNodeSet- the path map node set representing the paths to the context item
 
- 
explainDiagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.- Specified by:
- explainin class- Clause
- Parameters:
- out- the expression presenter used to display the structure
- Throws:
- XPathException- if any error occurs
 
- 
toShortStringDescription copied from class:ClauseGet a short string representation of the clause- Overrides:
- toShortStringin class- Clause
- Returns:
- a recognizable string
 
- 
toString
 
-