Package net.sf.saxon.expr.flwor
Class OuterForExpression
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.expr.Assignation
net.sf.saxon.expr.ForExpression
net.sf.saxon.expr.flwor.OuterForExpression
- All Implemented Interfaces:
Binding
,ExportAgent
,LocalBinding
,Locatable
,IdentityComparable
,Traceable
Expression class that implements the "outer for" clause of XQuery 3.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
An elaborator for a "for" expression, typically written as {for $x in SEQ return R}.Nested classes/interfaces inherited from class net.sf.saxon.expr.ForExpression
ForExpression.ForExprElaborator, ForExpression.MappingAction
-
Field Summary
Fields inherited from class net.sf.saxon.expr.Assignation
hasLoopingReference, indexedVariable, references, requiredType, slotNumber, variableName
Fields inherited from class net.sf.saxon.expr.Expression
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, MAX_COST, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, UPDATE_METHOD, WATCH_METHOD
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String
copy
(RebindingMap rebindings) Copy an expression.protected void
Make an elaborator for this expressionGet a name identifying the kind of expression, in terms meaningful to a user.protected int
Get the cardinality of the range variableiterate
(XPathContext context) Iterate over the result of the expressionoptimize
(ExpressionVisitor visitor, ContextItemStaticInfo contextItemType) Optimize the expressionvoid
process
(Outputter output, XPathContext context) Process this expression as an instruction, writing results to the current outputterMethods inherited from class net.sf.saxon.expr.ForExpression
checkPermittedContents, computeCardinality, export, getImplementationMethod, getIntegerBounds, getItemType, getStaticUType, getStreamerName, isVacuousExpression, markTailFunctionCalls, toShortString, toString, typeCheck, unordered
Methods inherited from class net.sf.saxon.expr.Assignation
addReference, addToPathMap, checkForUpdatingSubexpressions, computeDependencies, evaluateVariable, getAction, getActionOp, getCost, getIntegerBoundsForVariable, getLocalSlotNumber, getNominalReferenceCount, getObjectName, getRequiredSlots, getRequiredType, getSequence, getSequenceOp, getVariableEQName, getVariableName, getVariableQName, hasVariableBinding, isAssignable, isGlobal, isIndexedVariable, isUpdatingExpression, operands, rebuildReferenceList, refineTypeInformation, removeDeadReferences, replaceVariable, setAction, setIndexedVariable, setRequiredType, setSequence, setSlotNumber, setVariableQName, suppressValidation, verifyReferences
Methods inherited from class net.sf.saxon.expr.Expression
adoptChildExpression, allowExtractingCommonSubexpressions, checkedOperands, computeHashCode, computeSpecialProperties, computeStaticProperties, dispatchTailCall, dynamicError, effectiveBooleanValue, equals, evaluateAsString, evaluateItem, explain, getCardinality, getConfiguration, getDependencies, getEvaluationMethod, getExtraProperty, getIntrinsicDependencies, getLocalRetainedStaticContext, getLocation, getNetCost, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isInstruction, isLiftable, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, makeElaborator, operandList, operandSparseList, optimizeChildren, prepareForStreaming, resetLocalStaticProperties, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setFlattened, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplify, simplifyChildren, staticTypeCheck, supportsLazyEvaluation, toPattern, typeCheckChildren, typeError, verifyParentPointers, withLocation
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.sf.saxon.trace.Traceable
gatherProperties
-
Constructor Details
-
OuterForExpression
public OuterForExpression()
-
-
Method Details
-
getRangeVariableCardinality
protected int getRangeVariableCardinality()Get the cardinality of the range variable- Overrides:
getRangeVariableCardinality
in classForExpression
- Returns:
- the cardinality of the range variable (StaticProperty.EXACTLY_ONE). in a subclass
-
optimize
public Expression optimize(ExpressionVisitor visitor, ContextItemStaticInfo contextItemType) throws XPathException Optimize the expression- Overrides:
optimize
in classForExpression
- Parameters:
visitor
- an expression visitorcontextItemType
- the static type of "." at the point where this expression is invoked. The parameter is set to null if it is known statically that the context item will be undefined. If the type of the context item is not known statically, the argument is set toType.ITEM_TYPE
- Returns:
- the original expression, rewritten if appropriate to optimize execution
- Throws:
XPathException
- if an error is discovered during this phase (typically a type error)
-
copy
Copy an expression. This makes a deep copy.- Overrides:
copy
in classForExpression
- Parameters:
rebindings
- the rebinding map- Returns:
- the copy of the original expression
-
iterate
Iterate over the result of the expression- Overrides:
iterate
in classForExpression
- Parameters:
context
- supplies the context for evaluation- Returns:
- a SequenceIterator that can be used to iterate over the result of the expression
- Throws:
XPathException
- if any dynamic error occurs evaluating the expression
-
process
Process this expression as an instruction, writing results to the current outputter- Overrides:
process
in classForExpression
- Parameters:
output
- the destination for the resultcontext
- The dynamic context, giving access to the current node, the current variables, etc.- Throws:
XPathException
- if a dynamic error occurs
-
getExpressionName
Get a name identifying the kind of expression, in terms meaningful to a user.- Overrides:
getExpressionName
in classForExpression
- Returns:
- a name identifying the kind of expression, in terms meaningful to a user. The name will always be in the form of a lexical XML QName, and should match the name used in explain() output displaying the expression.
-
allowingEmptyString
- Overrides:
allowingEmptyString
in classForExpression
-
explainSpecializedAttributes
- Overrides:
explainSpecializedAttributes
in classForExpression
-
getElaborator
Make an elaborator for this expression- Overrides:
getElaborator
in classForExpression
- Returns:
- a suitable elaborator
-