public class LazyExpression extends UnaryExpression
Note that the LazyExpression class does not itself implement any kind of delayed evaluation: calling its evaluateItem() and iterate() methods produces an immediate result. Instead, the existence of a LazyExpression on the expression tree acts as a signal to other classes that evaluation should be delayed, typically by holding the result of the iterate() method in a Closure object.
operand
EVALUATE_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, staticProperties
?????? |
---|
LazyExpression(Expression operand)
Create a LazyExpression
|
?????? | ????? |
---|---|
Expression |
copy()
Copy an expression.
|
protected java.lang.String |
displayExpressionName()
Return the element name to use in the expression tree
|
Item |
evaluateItem(XPathContext context)
Evaluate an expression as a single item.
|
SequenceIterator |
iterate(XPathContext context)
Return an Iterator to iterate over the values of a sequence.
|
static Expression |
makeLazyExpression(Expression operand)
Create a LazyExpression (factory method)
|
Expression |
optimize(ExpressionVisitor visitor,
ItemType contextItemType)
Perform optimisation of an expression and its subexpressions.
|
void |
process(XPathContext context)
Process the instruction, without returning any tail calls
|
Expression |
typeCheck(ExpressionVisitor visitor,
ItemType contextItemType)
The typeCheck method suppresses compile-time evaluation
|
computeCardinality, computeSpecialProperties, displayOperator, equals, explain, getBaseExpression, getItemType, hashCode, iterateSubExpressions, promote, replaceSubExpression, simplify, toString
addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, findParentOf, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isUpdatingExpression, iterateEvents, markTailFunctionCalls, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError
public LazyExpression(Expression operand)
operand
- the expression to be evaluated lazilypublic static Expression makeLazyExpression(Expression operand)
operand
- the expression to be evaluated lazilypublic Expression typeCheck(ExpressionVisitor visitor, ItemType contextItemType) throws XPathException
typeCheck
??? UnaryExpression
visitor
- an expression visitorcontextItemType
- the static type of the context itemXPathException
public Expression optimize(ExpressionVisitor visitor, ItemType contextItemType) throws XPathException
optimize
??? UnaryExpression
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 to
Type.ITEM_TYPE
XPathException
- if an error is discovered during this phase
(typically a type error)public Item evaluateItem(XPathContext context) throws XPathException
evaluateItem
???? EvaluableItem
evaluateItem
??? Expression
context
- The context in which the expression is to be evaluatedXPathException
- if any dynamic error occurs evaluating the
expressionpublic SequenceIterator iterate(XPathContext context) throws XPathException
iterate
???? SequenceIterable
iterate
??? Expression
context
- supplies the context for evaluationXPathException
- if any dynamic error occurs evaluating the
expressionpublic void process(XPathContext context) throws XPathException
process
??? Expression
context
- The dynamic context, giving access to the current node,
the current variables, etc.XPathException
public Expression copy()
copy
??? Expression
protected java.lang.String displayExpressionName()
UnaryExpression
displayExpressionName
??? UnaryExpression