## net.sf.saxon.expr
Class RangeExpression

    java.lang.Object
      net.sf.saxon.expr.ComputedExpression
          net.sf.saxon.expr.BinaryExpression
              net.sf.saxon.expr.RangeExpression

All Implemented Interfaces:
  Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

public class RangeExpression
extends BinaryExpression

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 ...."

See Also:
  Serialized Form

Nested Class Summary
`static class` `RangeExpression.RangeIterator` Iterator that produces numeric values in a monotonic sequence, ascending or descending

Field Summary

Fields inherited from class net.sf.saxon.expr.BinaryExpression
`operand0, operand1, operator`

Fields inherited from class net.sf.saxon.expr.ComputedExpression
`locationId, staticProperties`

Fields inherited from interface net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`RangeExpression(Expression start, int op, Expression end)` Construct a RangeExpression

Method Summary
`Expression` `analyze(StaticContext env, ItemType contextItemType)` Type-check the expression
`int` `computeCardinality()` Determine the static cardinality
`ItemType` `getItemType()` Get the data type of the items returned
`SequenceIterator` `iterate(XPathContext context)` Return an iteration over the sequence

Methods inherited from class net.sf.saxon.expr.BinaryExpression
`computeSpecialProperties, display, displayOperator, equals, getOperands, getOperator, hashCode, isCommutative, isInverse, iterateSubExpressions, promote, simplify`

Methods inherited from class net.sf.saxon.expr.ComputedExpression

`adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, dynamicError, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getParentExpression, getPublicId, getSpecialProperties, getSystemId, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, typeError, typeError`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RangeExpression

    public RangeExpression(Expression start,
                           int op,
                           Expression end)

  Construct a RangeExpression

Method Detail

### analyze

    public Expression analyze(StaticContext env,
                              ItemType contextItemType)
                       throws XPathException

  Type-check the expression

  Specified by:
    `analyze` in interface `Expression`
  Overrides:
    `analyze` in class `BinaryExpression`
  Throws:
    `XPathException`

### getItemType

    public ItemType getItemType()

  Get the data type of the items returned

  Returns:
    a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER, Type.NODE, or Type.ITEM (meaning not known at compile time)

### computeCardinality

    public int computeCardinality()

  Determine the static cardinality

  Overrides:
    `computeCardinality` in class `BinaryExpression`

### iterate

    public SequenceIterator iterate(XPathContext context)
                             throws XPathException

  Return an iteration over the sequence

  Specified by:
    `iterate` in interface `Expression`
  Overrides:
    `iterate` in class `ComputedExpression`
  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