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 purposes
    `boolean` | `containsNonInlineableVariableReference​(Binding binding)` | Determine whether the clause contains a reference to a local variable binding that cannot be inlined
    `OrderByClause` | `copy​(FLWORExpression flwor, RebindingMap rebindings)` | Create a copy of this clause
    `AtomicValue` | `evaluateSortKey​(int n, XPathContext c)` | Callback for evaluating the sort keys
    `void` | `explain​(ExpressionPresenter out)` | Diagnostic print of expression structure.
    `AtomicComparer[]` | `getAtomicComparers()` |
    `Clause.ClauseName` | `getClauseKey()` | Get a keyword identifying what kind of clause this is
    `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
    `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
    `SortKeyDefinitionList` | `getSortKeyDefinitions()` |
    `TupleExpression` | `getTupleExpression()` |
    `void` | `processOperands​(OperandProcessor processor)` | Process the subexpressions of this clause
    `java.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`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### 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 class `Clause`
      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 class `Clause`
      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
      Specified by:
        `copy` in class `Clause`
      Parameters:
        `flwor` - the new FLWORExpression to contain the copied clause
      Returns:
        the copied 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 class `Clause`
      Parameters:
        `base` - the input tuple stream
        `context` - 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 class `Clause`
      Parameters:
        `destination` - the output tuple stream
        `output` - the destination for the result
        `context` - 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 class `Clause`
      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 class `Clause`
      Parameters:
        `visitor` - the ExpressionVisitor, providing access to static context information
        `contextInfo` - 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 class `Clause`
      Parameters:
        `pathMap` - the path map in which the data is to be collected
        `pathMapNodeSet` - 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 class `Clause`
      Parameters:
        `out` - the expression presenter used to display the structure
      Throws:
        `XPathException`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.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 evaluated
        `c` - 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