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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.sf.saxon.expr.flwor.Clause
Clause.ClauseName
-
-
Field Summary
Fields Modifier and Type Field Description static OperandRole
SORT_KEYS_ROLE
-
Constructor Summary
Constructors Constructor Description OrderByClause(FLWORExpression flwor, SortKeyDefinition[] sortKeys, TupleExpression tupleExpression)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Collect information about the navigation paths followed by this clause, for document projection purposesboolean
containsNonInlineableVariableReference(Binding binding)
Determine whether the clause contains a reference to a local variable binding that cannot be inlinedOrderByClause
copy(FLWORExpression flwor, RebindingMap rebindings)
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()
Clause.ClauseName
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, Outputter output, XPathContext context)
Get a push-mode tuple stream that implements the functionality of this clause, supplying its output to another tuple streamSortKeyDefinitionList
getSortKeyDefinitions()
TupleExpression
getTupleExpression()
void
processOperands(OperandProcessor processor)
Process the subexpressions of this clausejava.lang.String
toString()
void
typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo)
Type-check the expression-
Methods inherited from class net.sf.saxon.expr.flwor.Clause
gatherVariableReferences, getConfiguration, getLocation, getPackageData, getRangeVariables, getTraceInfo, isRepeated, optimize, refineVariableType, setLocation, setPackageData, setRepeated, toShortString
-
-
-
-
Field Detail
-
SORT_KEYS_ROLE
public static final OperandRole SORT_KEYS_ROLE
-
-
Constructor Detail
-
OrderByClause
public OrderByClause(FLWORExpression flwor, SortKeyDefinition[] sortKeys, TupleExpression tupleExpression)
-
-
Method Detail
-
getClauseKey
public Clause.ClauseName 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(FLWORExpression flwor, RebindingMap rebindings)
Description copied from class:Clause
Create a copy of this clause
-
getSortKeyDefinitions
public SortKeyDefinitionList getSortKeyDefinitions()
-
getAtomicComparers
public AtomicComparer[] getAtomicComparers()
-
getTupleExpression
public TupleExpression getTupleExpression()
-
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
- XQuery dynamic context- Returns:
- the output tuple stream
-
getPushStream
public TuplePush getPushStream(TuplePush destination, Outputter output, 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 streamoutput
- the destination for the resultcontext
- XQuery dynamic context- Returns:
- the push tuple stream that implements the functionality of this clause of the FLWOR expression
-
processOperands
public void processOperands(OperandProcessor processor) throws XPathException
Process the subexpressions of this clause- Specified by:
processOperands
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, ContextItemStaticInfo contextInfo) throws XPathException
Type-check the expression- Overrides:
typeCheck
in classClause
- Parameters:
visitor
- the ExpressionVisitor, providing access to static context informationcontextInfo
- static information about the dynamic context- Throws:
XPathException
- if any error is detected
-
addToPathMap
public void addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Description copied from class:Clause
Collect information about the navigation paths followed by this clause, for document projection purposes- Specified by:
addToPathMap
in classClause
- Parameters:
pathMap
- the path map in which the data is to be collectedpathMapNodeSet
- the path map node set representing the paths to the context item
-
explain
public void explain(ExpressionPresenter out) throws XPathException
Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.- Specified by:
explain
in classClause
- Parameters:
out
- the expression presenter used to display the structure- Throws:
XPathException
-
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- Parameters:
n
- identifies the sort key to be evaluatedc
- the dynamic context for evaluation of the sort key- Returns:
- the value of the sort key
- Throws:
XPathException
- if evaluation of the sort key fails
-
-