net.sf.saxon.expr
Class RangeExpression
- EvaluableItem, InstructionInfoProvider, SequenceIterable, Serializable, SourceLocator
public class RangeExpression
A RangeExpression is an expression that represents an integer sequence as
a pair of end-points (for example "x to y").
If the end-points are equal, the sequence is of length one.
From Saxon 7.8, the sequence must be ascending; if the end-point is less
than the start-point, an empty sequence is returned. This is to allow
expressions of the form "for $i in 1 to count($seq) return ...."
computeCardinality , computeSpecialProperties , displayOperator , equals , explain , getOperands , getOperator , hashCode , isAssociative , isCommutative , isInverse , iterateSubExpressions , optimize , promote , replaceSubExpression , setFlattened , simplify , toString , typeCheck |
addToPathMap , adoptChildExpression , checkPermittedContents , computeCardinality , computeDependencies , computeSpecialProperties , computeStaticProperties , copy , display , doPromotion , dynamicError , effectiveBooleanValue , evaluateAsString , evaluateItem , explain , explain , findParentOf , getCardinality , getColumnNumber , getConstructType , getContainer , getDependencies , getExecutable , getHostLanguage , getImplementationMethod , getInstructionInfo , getIntrinsicDependencies , getItemType , getLineNumber , getLocationId , getLocationProvider , getPublicId , getSlotsUsed , getSpecialProperties , getSystemId , hasLoopingSubexpression , implementsStaticTypeCheck , iterate , iterateEvents , iterateSubExpressions , markTailFunctionCalls , optimize , process , promote , replaceSubExpression , resetLocalStaticProperties , setContainer , setFiltered , setFlattened , setLocationId , simplify , staticTypeCheck , suppressValidation , toString , typeCheck , typeError |
RangeExpression
public RangeExpression(Expression start,
int op,
Expression end)
Construct a RangeExpression
start
- expression that computes the start of the rangeop
- represents the operator "to", needed only because this class is a subclass of
BinaryExpression which needs an operatorend
- expression that computes the end of the range
copy
public Expression copy()
Copy an expression. This makes a deep copy.
- copy in interface Expression
- the copy of the original expression
optimize
public Expression optimize(ExpressionVisitor visitor,
ItemType contextItemType)
throws XPathException
Perform optimisation of an expression and its subexpressions.
This method is called after all references to functions and variables have been resolved
to the declaration of the function or variable, and after all type checking has been done.
- optimize in interface BinaryExpression
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
- the original expression, rewritten if appropriate to optimize execution
XPathException
- if an error is discovered during this phase
(typically a type error)