net.sf.saxon.sort
Class SortExpression

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

public class SortExpression
extends ComputedExpression

Expression equivalent to the imaginary syntax expr sortby (sort-key)+

See Also:
Serialized Form

Field Summary
 
Fields inherited from class net.sf.saxon.expr.ComputedExpression
lineNumber, NO_ARGUMENTS, staticProperties
 
Constructor Summary
SortExpression(Expression select, SortKeyDefinition[] sortKeys)
           
 
Method Summary
 Expression analyze(StaticContext env)
          Type-check the expression
 int computeCardinality()
          Determine the static cardinality
 int computeSpecialProperties()
          Get the static properties of this expression (other than its type).
 void display(int level, NamePool pool)
          Diagnostic print of expression structure.
 ItemType getItemType()
          Determine the data type of the items returned by the expression, if possible
 SequenceIterator iterate(XPathContext context)
          Enumerate the results of the expression
 Expression simplify()
          Simplify an expression
 
Methods inherited from class net.sf.saxon.expr.ComputedExpression
computeDependencies, computeStaticProperties, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getDependencies, getIntrinsicDependencies, getLineNumber, getSourceLocator, getSpecialProperties, getSubExpressions, markTailFunctionCalls, promote, setLineNumber, typeError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SortExpression

public SortExpression(Expression select,
                      SortKeyDefinition[] sortKeys)
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)
                   throws XPathException
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
XPathException

computeCardinality

public int computeCardinality()
Determine the static cardinality

Specified by:
computeCardinality in class ComputedExpression

getItemType

public ItemType getItemType()
Determine the data type of the items returned by the expression, if possible

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

computeSpecialProperties

public int computeSpecialProperties()
Get the static properties of this expression (other than its type). The result is bit-significant. These properties are used for optimizations. In general, if property bit is set, it is true, but if it is unset, the value is unknown.

Overrides:
computeSpecialProperties in class ComputedExpression

iterate

public SequenceIterator iterate(XPathContext context)
                         throws XPathException
Enumerate the results of the expression

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

display

public void display(int level,
                    NamePool pool)
Description copied from interface: Expression
Diagnostic print of expression structure. The expression is written to the System.err output stream

Parameters:
level - indentation level for this expression