Package net.sf.saxon.expr.flwor
Class OrderByClause
- java.lang.Object
-
- net.sf.saxon.expr.flwor.Clause
-
- net.sf.saxon.expr.flwor.OrderByClause
-
public class OrderByClause extends Clause
This class represents an "order by" clause in a FLWOR expression
-
-
Field Summary
Fields Modifier and Type Field Description (package private) AtomicComparer[]
comparators
(package private) SortKeyDefinition[]
sortKeys
(package private) TupleExpression
tupleExpression
-
Fields inherited from class net.sf.saxon.expr.flwor.Clause
COUNT, FOR, GROUPBYCLAUSE, LET, ORDERBYCLAUSE, TRACE, WHERE, WINDOW
-
-
Constructor Summary
Constructors Constructor Description OrderByClause(SortKeyDefinition[] sortKeys, TupleExpression tupleExpression)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
containsNonInlineableVariableReference(Binding binding)
Determine whether the clause contains a reference to a local variable binding that cannot be inlinedOrderByClause
copy()
Create a copy of this clauseAtomicValue
evaluateSortKey(int n, XPathContext c)
Callback for evaluating the sort keysvoid
explain(ExpressionPresenter out)
Diagnostic print of expression structure.AtomicComparer[]
getAtomicComparers()
int
getClauseKey()
Get a keyword identifying what kind of clause this isTuplePull
getPullStream(TuplePull base, XPathContext context)
Get a tuple stream that implements the functionality of this clause, taking its input from another tuple stream which this clause modifiesTuplePush
getPushStream(TuplePush destination, XPathContext context)
Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple streamSortKeyDefinition[]
getSortKeyDefinitions()
void
processSubExpressions(ExpressionProcessor processor)
Process the subexpressions of this clausejava.lang.String
toString()
void
typeCheck(ExpressionVisitor visitor)
Type-check the expression-
Methods inherited from class net.sf.saxon.expr.flwor.Clause
gatherVariableReferences, getLocationId, getRangeVariables, optimize, refineVariableType, setLocationId
-
-
-
-
Field Detail
-
sortKeys
SortKeyDefinition[] sortKeys
-
comparators
AtomicComparer[] comparators
-
tupleExpression
TupleExpression tupleExpression
-
-
Constructor Detail
-
OrderByClause
public OrderByClause(SortKeyDefinition[] sortKeys, TupleExpression tupleExpression)
-
-
Method Detail
-
getClauseKey
public int getClauseKey()
Description copied from class:Clause
Get a keyword identifying what kind of clause this is- Specified by:
getClauseKey
in classClause
- Returns:
- the kind of clause
-
containsNonInlineableVariableReference
public boolean containsNonInlineableVariableReference(Binding binding)
Description copied from class:Clause
Determine whether the clause contains a reference to a local variable binding that cannot be inlined- Overrides:
containsNonInlineableVariableReference
in classClause
- Parameters:
binding
- the binding for the local variable in question- Returns:
- true if this clause uses the variable in a way that does not permit inlining
-
copy
public OrderByClause copy()
Description copied from class:Clause
Create a copy of this clause
-
getSortKeyDefinitions
public SortKeyDefinition[] getSortKeyDefinitions()
-
getAtomicComparers
public AtomicComparer[] getAtomicComparers()
-
getPullStream
public TuplePull getPullStream(TuplePull base, XPathContext context)
Get a tuple stream that implements the functionality of this clause, taking its input from another tuple stream which this clause modifies- Specified by:
getPullStream
in classClause
- Parameters:
base
- the input tuple streamcontext
-- Returns:
- the output tuple stream
-
getPushStream
public TuplePush getPushStream(TuplePush destination, XPathContext context)
Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple stream- Specified by:
getPushStream
in classClause
- Parameters:
destination
- the output tuple streamcontext
-- Returns:
- the push tuple stream that implements the functionality of this clause of the FLWOR expression
-
processSubExpressions
public void processSubExpressions(ExpressionProcessor processor) throws XPathException
Process the subexpressions of this clause- Specified by:
processSubExpressions
in classClause
- Parameters:
processor
- the expression processor used to process the subexpressions- Throws:
XPathException
- if any error is detected
-
typeCheck
public void typeCheck(ExpressionVisitor visitor) throws XPathException
Type-check the expression- Overrides:
typeCheck
in classClause
- Parameters:
visitor
- the ExpressionVisitor, providing access to static context information- Throws:
XPathException
- if any error is detected
-
explain
public void explain(ExpressionPresenter out)
Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
evaluateSortKey
public AtomicValue evaluateSortKey(int n, XPathContext c) throws XPathException
Callback for evaluating the sort keys- Throws:
XPathException
-
-