Package net.sf.saxon.functions

## Class Reverse

- java.lang.Object
- - net.sf.saxon.functions.AbstractFunction
  - - net.sf.saxon.functions.SystemFunction
    - - net.sf.saxon.functions.Reverse

- All Implemented Interfaces:
    `Callable`, `Function`, `GroundedValue`, `Item`, `Sequence`

      public class Reverse
      extends SystemFunction

  Implement XPath function fn:reverse()

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Reverse()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Sequence` | `call​(XPathContext context, Sequence[] arguments)` | Invoke the function
    `static <T extends Item> SequenceIterator` | `getReverseIterator​(SequenceIterator forwards)` |
    `int` | `getSpecialProperties​(Expression[] arguments)` | Determine the special properties of this function.
    `java.lang.String` | `getStreamerName()` | Get a name that identifies the class that can be used to evaluate this function in streaming mode, that is, supplying one item or event at a time as it is delivered by the parser.
    `Expression` | `makeOptimizedFunctionCall​(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo, Expression... arguments)` | Allow the function to create an optimized call based on the values of the actual arguments

    - ### Methods inherited from class net.sf.saxon.functions.SystemFunction

      `dependsOnContextItem, dynamicCall, equals, export, exportAdditionalArguments, exportAttributes, fixArguments, getArity, getCardinality, getCompilerName, getContextNode, getDescription, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getFunctionName, getIntegerBounds, getNetCost, getOperandRoles, getRequiredType, getResultItemType, getResultItemType, getRetainedStaticContext, getStaticBaseUriString, importAttributes, isTrustedResultType, makeCall, makeFunction, makeFunctionCall, resultIfEmpty, setArity, setDetails, setRetainedStaticContext, supplyTypeInformation, toShortString, toString, typeCheckCaller`

    - ### Methods inherited from class net.sf.saxon.functions.AbstractFunction

      `atomize, deepEquals, effectiveBooleanValue, getAnnotations, getStringValue, getStringValueCS, isArray, isMap, makeNewContext, simplify, typeCheck`

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

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

    - ### Methods inherited from interface net.sf.saxon.om.Function

      `getGenre`

    - ### Methods inherited from interface net.sf.saxon.om.GroundedValue

      `asIterable, concatenate, containsNode, materialize`

    - ### Methods inherited from interface net.sf.saxon.om.Item

      `getLength, head, isStreamed, itemAt, iterate, reduce, subsequence`

    - ### Methods inherited from interface net.sf.saxon.om.Sequence

      `makeRepeatable`

- - ### Constructor Detail

    - #### Reverse

          public Reverse()

  - ### Method Detail

    - #### getSpecialProperties

          public int getSpecialProperties​(Expression[] arguments)

      Description copied from class: `SystemFunction`
      Determine the special properties of this function. The general rule is that a system function call is non-creative unless more details are defined in a subclass.
      Overrides:
        `getSpecialProperties` in class `SystemFunction`
      Parameters:
        `arguments` - the actual arguments supplied in a call to the function

    - #### getReverseIterator

          public static <T extends Item> SequenceIterator getReverseIterator​(SequenceIterator forwards)
                                                                      throws XPathException

      Throws:
        `XPathException`

    - #### call

          public Sequence call​(XPathContext context,
                               Sequence[] arguments)
                        throws XPathException

      Description copied from interface: `Function`
      Invoke the function
      Parameters:
        `context` - the XPath dynamic evaluation context
        `arguments` - the actual arguments to be supplied
      Returns:
        the result of invoking the function
      Throws:
        `XPathException` - if a dynamic error occurs within the function

    - #### makeOptimizedFunctionCall

          public Expression makeOptimizedFunctionCall​(ExpressionVisitor visitor,
                                                      ContextItemStaticInfo contextInfo,
                                                      Expression... arguments)
                                               throws XPathException

      Allow the function to create an optimized call based on the values of the actual arguments
      Overrides:
        `makeOptimizedFunctionCall` in class `SystemFunction`
      Parameters:
        `visitor` - the expression visitor
        `contextInfo` - information about the context item
        `arguments` - the supplied arguments to the function call. Note: modifying the contents of this array should not be attempted, it is likely to have no effect.
      Returns:
        either a function call on this function, or an expression that delivers the same result, or null indicating that no optimization has taken place
      Throws:
        `XPathException` - if an error is detected

    - #### getStreamerName

          public java.lang.String getStreamerName()

      Description copied from class: `SystemFunction`
      Get a name that identifies the class that can be used to evaluate this function in streaming mode, that is, supplying one item or event at a time as it is delivered by the parser. Special streaming support is generally available in Saxon-EE for all system functions that take a sequence as their argument.
      Overrides:
        `getStreamerName` in class `SystemFunction`
      Returns:
        a name that identifies a class that supports streamed evaluation of this system function, or null if no such class is available. The mapping of names to classes is defined in the Saxon-EE class `StreamerMap`. In non-streaming Saxon editions (HE and PE) the method always returns null.