|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.sf.saxon.expr.Expression
net.sf.saxon.expr.BinaryExpression
net.sf.saxon.expr.RangeExpression
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 ...."
| Field Summary |
|---|
| Fields inherited from class net.sf.saxon.expr.BinaryExpression |
|---|
operand0, operand1, operator |
| Fields inherited from class net.sf.saxon.expr.Expression |
|---|
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, WATCH_METHOD |
| Constructor Summary | |
|---|---|
RangeExpression(Expression start,
int op,
Expression end)
Construct a RangeExpression |
|
| Method Summary | |
|---|---|
int |
computeCardinality()
Determine the static cardinality |
Expression |
copy()
Copy an expression. |
IntegerValue[] |
getIntegerBounds()
For an expression that returns an integer or a sequence of integers, get a lower and upper bound on the values of the integers that may be returned, from static analysis. |
ItemType |
getItemType(TypeHierarchy th)
Get the data type of the items returned |
SequenceIterator |
iterate(XPathContext context)
Return an iteration over the sequence |
Expression |
optimize(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
Perform optimisation of an expression and its subexpressions. |
Expression |
typeCheck(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
Type-check the expression |
| Methods inherited from class net.sf.saxon.expr.BinaryExpression |
|---|
computeSpecialProperties, displayOperator, equals, explain, explainExtraAttributes, getArguments, getOperands, getOperator, hashCode, isAssociative, isCommutative, isInverse, iterateSubExpressions, promote, replaceSubExpression, setFlattened, simplify, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public RangeExpression(Expression start,
int op,
Expression end)
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| Method Detail |
|---|
public Expression typeCheck(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
throws XPathException
typeCheck in class BinaryExpressionvisitor - 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 Expression optimize(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
throws XPathException
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 class BinaryExpressionvisitor - 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 ItemType getItemType(TypeHierarchy th)
getItemType in class Expressionth - the type hierarchy cache
public int computeCardinality()
computeCardinality in class BinaryExpressionStaticProperty.ALLOWS_ZERO_OR_ONE,
StaticProperty.EXACTLY_ONE, StaticProperty.ALLOWS_ONE_OR_MORE,
StaticProperty.ALLOWS_ZERO_OR_MOREpublic IntegerValue[] getIntegerBounds()
getIntegerBounds in class Expressionpublic Expression copy()
copy in class Expression
public SequenceIterator iterate(XPathContext context)
throws XPathException
iterate in class Expressioncontext - supplies the context for evaluation
XPathException - if any dynamic error occurs evaluating the
expression
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||