net.sf.saxon.expr
Class PositionRange

java.lang.Object
  |
  +--net.sf.saxon.expr.ComputedExpression
        |
        +--net.sf.saxon.expr.PositionRange
All Implemented Interfaces:
Expression, java.io.Serializable

public final class PositionRange
extends ComputedExpression

PositionRange: a boolean expression that tests whether the position() is within a certain range. This expression can occur in any context but it is optimized when it appears as a predicate (see FilterIterator)

See Also:
Serialized Form

Field Summary
 
Fields inherited from class net.sf.saxon.expr.ComputedExpression
lineNumber, NO_ARGUMENTS, staticProperties
 
Constructor Summary
PositionRange(int min, int max)
          Create a position range
 
Method Summary
 Expression analyze(StaticContext env)
          Type-check the expression
 int computeCardinality()
          Determine the static cardinality
 void display(int level, NamePool pool)
          Diagnostic print of expression structure
 Item evaluateItem(XPathContext c)
          Evaluate the expression
 int getIntrinsicDependencies()
          Get the dependencies
 ItemType getItemType()
          Determine the data type of the expression
 int getMaxPosition()
          Get the maximum position
 int getMinPosition()
          Get the minimum position
 Expression simplify()
          Simplify an expression
 
Methods inherited from class net.sf.saxon.expr.ComputedExpression
computeDependencies, computeSpecialProperties, computeStaticProperties, dynamicError, effectiveBooleanValue, evaluateAsString, getCardinality, getDependencies, getLineNumber, getSpecialProperties, getSubExpressions, iterate, markTailFunctionCalls, promote, setLineNumber, typeError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PositionRange

public PositionRange(int min,
                     int max)
Create a position range

Method Detail

simplify

public Expression simplify()
                    throws XPathException
Simplify an expression

Specified by:
simplify in interface Expression
Overrides:
simplify in class ComputedExpression
Returns:
the simplified expression
Throws:
XPathException - if an error is discovered during expression rewriting

analyze

public Expression analyze(StaticContext env)
Type-check the expression

Parameters:
env - the static context of the expression
Returns:
the original expression, rewritten to perform necessary run-time type checks, and to perform other type-related optimizations

evaluateItem

public Item evaluateItem(XPathContext c)
                  throws XPathException
Evaluate the expression

Specified by:
evaluateItem in interface Expression
Overrides:
evaluateItem in class ComputedExpression
Parameters:
c - The context in which the expression is to be evaluated
Returns:
the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
Throws:
XPathException - if any dynamic error occurs evaluating the expression

getItemType

public ItemType getItemType()
Determine the data type of the expression

Returns:
Type.BOOLEAN

computeCardinality

public int computeCardinality()
Determine the static cardinality

Specified by:
computeCardinality in class ComputedExpression

getIntrinsicDependencies

public int getIntrinsicDependencies()
Get the dependencies

Overrides:
getIntrinsicDependencies in class ComputedExpression
Returns:
a set of bit-significant flags identifying the "intrinsic" dependencies. The flags are documented in class net.sf.saxon.value.StaticProperty

getMinPosition

public int getMinPosition()
Get the minimum position


getMaxPosition

public int getMaxPosition()
Get the maximum position


display

public void display(int level,
                    NamePool pool)
Diagnostic print of expression structure

Parameters:
level - indentation level for this expression