net.sf.saxon.expr
Class PositionRange

java.lang.Object
  |
  +--net.sf.saxon.expr.ComputedExpression
        |
        +--net.sf.saxon.expr.PositionRange
All Implemented Interfaces:
Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

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
locationId, staticProperties
 
Fields inherited from interface net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
 
Constructor Summary
PositionRange(int min, int max)
          Create a position range
 
Method Summary
 Expression analyze(StaticContext env, ItemType contextItemType)
          Type-check the expression
 int computeCardinality()
          Determine the static cardinality
 void display(int level, NamePool pool, java.io.PrintStream out)
          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(StaticContext env)
          Simplify an expression
 
Methods inherited from class net.sf.saxon.expr.ComputedExpression
adoptChildExpression, computeDependencies, computeSpecialProperties, computeStaticProperties, dynamicError, dynamicError, effectiveBooleanValue, evaluateAsString, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getImplementationMethod, getInstructionInfo, getLineNumber, getLocationId, getParentExpression, getPublicId, getSpecialProperties, getSystemId, iterate, iterateSubExpressions, markTailFunctionCalls, process, promote, resetStaticProperties, setLocationId, setParentExpression, 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(StaticContext env)
                    throws StaticError
Simplify an expression

Specified by:
simplify in interface Expression
Overrides:
simplify in class ComputedExpression
Returns:
the simplified expression
StaticError

analyze

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

Parameters:
env - the static context of the expression
contextItemType - 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
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,
                    java.io.PrintStream out)
Diagnostic print of expression structure

Parameters:
level - indentation level for this expression
pool - NamePool used to expand any names appearing in the expression
out - Output destination