Package com.saxonica.ee.stream

## Class StreamableUserFunction

- java.lang.Object
- - net.sf.saxon.expr.instruct.Actor
  - - net.sf.saxon.expr.instruct.UserFunction
    - - com.saxonica.ee.stream.StreamableUserFunction

- All Implemented Interfaces:
    `javax.xml.transform.SourceLocator`, `Callable`, `ContextOriginator`, `ExpressionOwner`, `Locatable`, `Function`, `GroundedValue`, `Item`, `Sequence`, `Location`, `Traceable`, `TraceableComponent`, `org.xml.sax.Locator`

      public class StreamableUserFunction
      extends UserFunction

  Represents a used-defined XSLT function whose declared streamability is other than "unclassified"

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class net.sf.saxon.expr.instruct.UserFunction

      `UserFunction.Determinism`

  - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.expr.instruct.UserFunction

      `evaluator`

    - ### Fields inherited from class net.sf.saxon.expr.instruct.Actor

      `body`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ComponentInversion` | `getInversion()` |
    `void` | `makeInversion()` | Generate the inversion of the expression comprising the body of the function.
    `void` | `prepareForStreaming()` |

    - ### Methods inherited from class net.sf.saxon.expr.instruct.UserFunction

      `acceptsNodesWithoutAtomization, atomize, call, call, callUpdating, computeEvaluationMode, containsTailCalls, deepEquals, effectiveBooleanValue, export, gatherProperties, getAnnotations, getArgumentType, getArity, getDeclaredResultType, getDeclaredStreamability, getDescription, getDeterminism, getEvaluator, getFunctionItemType, getFunctionName, getLength, getObjectName, getOperandRoles, getParameterDefinitions, getReferenceCount, getResultType, getStringValue, getStringValueCS, getSymbolicName, getTracingTag, head, incrementReferenceCount, isArray, isExportable, isInlineable, isMap, isMemoFunction, isOverrideExtensionFunction, isTailRecursive, isTrustedResultType, isUpdating, itemAt, makeNewContext, markAsInlined, process, reduce, setAnnotations, setDeclaredStreamability, setDeterminism, setEvaluationMode, setFunctionName, setInlineable, setOverrideExtensionFunction, setParameterDefinitions, setResultType, setTailRecursive, setUpdating, subsequence, typeCheck`

    - ### Methods inherited from class net.sf.saxon.expr.instruct.Actor

      `allocateAllBindingSlots, allocateBindingSlotsRecursive, getBody, getChildExpression, getColumnNumber, getComponentName, getDeclaredVisibility, getDeclaringComponent, getLineNumber, getLocation, getPackageData, getProperties, getProperty, getPublicId, getRetainedStaticContext, getStackFrameMap, getSystemId, makeDeclaringComponent, obtainDeclaringComponent, saveLocation, setBody, setChildExpression, setColumnNumber, setDeclaredVisibility, setDeclaringComponent, setLineNumber, setPackageData, setRetainedStaticContext, setStackFrameMap, setSystemId`

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

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

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

      `getGenre, toShortString`

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

      `asIterable, concatenate, containsNode, materialize`

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

      `isStreamed, iterate`

    - ### Methods inherited from interface net.sf.saxon.expr.Locatable

      `getLocation`

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

      `makeRepeatable`

    - ### Methods inherited from interface net.sf.saxon.trace.TraceableComponent

      `getBody, setBody`

- - ### Constructor Detail

    - #### StreamableUserFunction

          public StreamableUserFunction()

  - ### Method Detail

    - #### makeInversion

          public void makeInversion()
                             throws XPathException

      Generate the inversion of the expression comprising the body of the function. Supported in Saxon-EE only
      Throws:
        `XPathException`

    - #### getInversion

          public ComponentInversion getInversion()

    - #### prepareForStreaming

          public void prepareForStreaming()
                                   throws XPathException

      Overrides:
        `prepareForStreaming` in class `UserFunction`
      Throws:
        `XPathException`