|
|||||||||
| 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.sort.SortExpression
public class SortExpression
Expression equivalent to the imaginary syntax expr sortby (sort-key)+
| Field Summary |
|---|
| 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 | |
|---|---|
SortExpression(Expression select,
SortKeyDefinition[] sortKeys)
Create a sort expression |
|
| Method Summary | |
|---|---|
PathMap.PathMapNodeSet |
addToPathMap(PathMap pathMap,
PathMap.PathMapNodeSet pathMapNodeSet)
Add a representation of this expression to a PathMap. |
int |
computeCardinality()
Determine the static cardinality |
int |
computeSpecialProperties()
Get the static properties of this expression (other than its type). |
Expression |
copy()
Copy an expression. |
AtomicValue |
evaluateSortKey(int n,
XPathContext c)
Callback for evaluating the sort keys |
void |
explain(ExpressionPresenter out)
Diagnostic print of expression structure. |
Expression |
getBaseExpression()
Get the expression defining the sequence being sorted |
AtomicComparer[] |
getComparators()
Get the comparators, if known statically. |
String |
getExpressionName()
Get a name identifying the kind of expression, in terms meaningful to a user. |
ItemType |
getItemType(TypeHierarchy th)
Determine the data type of the items returned by the expression, if possible |
SortKeyDefinition[] |
getSortKeyDefinitions()
Get the sort key definitions |
boolean |
hasLoopingSubexpression(Expression child)
Given an expression that is an immediate child of this expression, test whether the evaluation of the parent expression causes the child expression to be evaluated repeatedly |
boolean |
isSortKey(Expression child)
Test whether a given expression is one of the sort keys |
SequenceIterator |
iterate(XPathContext context)
Enumerate the results of the expression |
Iterator<Expression> |
iterateSameFocusSubExpressions()
Get the immediate sub-expressions of this expression that are evaluated with the same focus (context item, position, and size) as the parent expression. |
Iterator<Expression> |
iterateSubExpressions()
Get the immediate sub-expressions of this expression. |
Expression |
optimize(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
Perform optimisation of an expression and its subexpressions. |
Expression |
promote(PromotionOffer offer,
Expression parent)
Offer promotion for this subexpression. |
boolean |
replaceSubExpression(Expression original,
Expression replacement)
Replace one subexpression by a replacement subexpression |
Expression |
simplify(ExpressionVisitor visitor)
Simplify an expression |
Expression |
typeCheck(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
Type-check the expression |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public SortExpression(Expression select,
SortKeyDefinition[] sortKeys)
select - the expression whose result is to be sortedsortKeys - the set of sort key definitions to be used, in major to minor order| Method Detail |
|---|
public String getExpressionName()
getExpressionName in class Expressionpublic Expression getBaseExpression()
public SortKeyDefinition[] getSortKeyDefinitions()
public AtomicComparer[] getComparators()
public Iterator<Expression> iterateSubExpressions()
iterateSubExpressions in class Expressionpublic Iterator<Expression> iterateSameFocusSubExpressions()
iterateSameFocusSubExpressions in class Expression
public PathMap.PathMapNodeSet addToPathMap(PathMap pathMap,
PathMap.PathMapNodeSet pathMapNodeSet)
The default implementation of this method assumes that an expression does no navigation other than the navigation done by evaluating its subexpressions, and that the subexpressions are evaluated in the same context as the containing expression. The method must be overridden for any expression where these assumptions do not hold. For example, implementations exist for AxisExpression, ParentExpression, and RootExpression (because they perform navigation), and for the doc(), document(), and collection() functions because they create a new navigation root. Implementations also exist for PathExpression and FilterExpression because they have subexpressions that are evaluated in a different context from the calling expression.
addToPathMap in class ExpressionpathMap - the PathMap to which the expression should be addedpathMapNodeSet -
public boolean hasLoopingSubexpression(Expression child)
hasLoopingSubexpression in class Expressionchild - the immediate subexpression
public boolean replaceSubExpression(Expression original,
Expression replacement)
replaceSubExpression in class Expressionoriginal - the original subexpressionreplacement - the replacement subexpression
public Expression simplify(ExpressionVisitor visitor)
throws XPathException
simplify in class Expressionvisitor - an expression visitor
XPathException - if an error is discovered during expression
rewriting
public Expression typeCheck(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
throws XPathException
typeCheck in class Expressionvisitor - 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 Expressionvisitor - 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 copy()
copy in class Expression
public Expression promote(PromotionOffer offer,
Expression parent)
throws XPathException
promote in class Expressionoffer - details of the offer, for example the offer to move
expressions that don't depend on the context to an outer level in
the containing expressionparent -
XPathException - if any error is detectedpublic boolean isSortKey(Expression child)
child - the given expression
public int computeCardinality()
computeCardinality in class ExpressionStaticProperty.ALLOWS_ZERO_OR_ONE,
StaticProperty.EXACTLY_ONE, StaticProperty.ALLOWS_ONE_OR_MORE,
StaticProperty.ALLOWS_ZERO_OR_MOREpublic ItemType getItemType(TypeHierarchy th)
getItemType in class Expressionth - the type hierarchy cache
public int computeSpecialProperties()
computeSpecialProperties 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
public AtomicValue evaluateSortKey(int n,
XPathContext c)
throws XPathException
evaluateSortKey in interface SortKeyEvaluatorXPathExceptionpublic void explain(ExpressionPresenter out)
explain in class Expressionout - the expression presenter used to display the structure
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||