Package net.sf.saxon.functions.hof

## Class UserFunctionReference.BoundUserFunction

- java.lang.Object
- - net.sf.saxon.functions.AbstractFunction
  - - net.sf.saxon.functions.hof.UserFunctionReference.BoundUserFunction

- All Implemented Interfaces:
    `Callable`, `ContextOriginator`, `Function`, `GroundedValue`, `Item`, `Sequence`
  Enclosing class:
    UserFunctionReference

      public static class UserFunctionReference.BoundUserFunction
      extends AbstractFunction
      implements ContextOriginator

  A BoundUserFunction represents a user-defined function seen as a component. A single source-level XSLT function may be the actor in several different components (in different stylesheet packages). Although the code of the function is identical in each case, the bindings to other stylesheet components may be different.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BoundUserFunction​(ExportAgent agent, Function function, Component component, Controller controller)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Sequence` | `call​(XPathContext context, Sequence[] args)` | Invoke the function
    `void` | `export​(ExpressionPresenter out)` | Output information about this function item to the diagnostic explain() output
    `AnnotationList` | `getAnnotations()` | Get the function annotations (as defined in XQuery).
    `int` | `getArity()` | Get the arity of the function
    `Controller` | `getController()` |
    `java.lang.String` | `getDescription()` | Get a description of this function for use in error messages.
    `FunctionItemType` | `getFunctionItemType()` | Get the item type of the function item
    `StructuredQName` | `getFunctionName()` | Get the name of the function, or null if it is anonymous
    `Function` | `getTargetFunction()` |
    `XPathContext` | `makeNewContext​(XPathContext oldContext, ContextOriginator originator)` | Prepare an XPathContext object for evaluating the function

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

      `atomize, deepEquals, effectiveBooleanValue, getOperandRoles, getStringValue, getStringValueCS, isArray, isMap, isTrustedResultType, simplify, typeCheck`

    - ### 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

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

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

      `makeRepeatable`

- - ### Constructor Detail

    - #### BoundUserFunction

          public BoundUserFunction​(ExportAgent agent,
                                   Function function,
                                   Component component,
                                   Controller controller)

  - ### Method Detail

    - #### getTargetFunction

          public Function getTargetFunction()

    - #### getController

          public Controller getController()

    - #### makeNewContext

          public XPathContext makeNewContext​(XPathContext oldContext,
                                             ContextOriginator originator)

      Description copied from class: `AbstractFunction`
      Prepare an XPathContext object for evaluating the function
      Specified by:
        `makeNewContext` in interface `Function`
      Overrides:
        `makeNewContext` in class `AbstractFunction`
      Parameters:
        `oldContext` - the XPathContext of the function calling expression
        `originator` - identifies the location of the caller for diagnostics
      Returns:
        a suitable context for evaluating the function (which may or may not be the same as the caller's context)

    - #### call

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

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

    - #### getFunctionItemType

          public FunctionItemType getFunctionItemType()

      Description copied from interface: `Function`
      Get the item type of the function item
      Specified by:
        `getFunctionItemType` in interface `Function`
      Returns:
        the function item's type

    - #### getAnnotations

          public AnnotationList getAnnotations()

      Description copied from interface: `Function`
      Get the function annotations (as defined in XQuery). Returns an empty list if there are no function annotations.
      Specified by:
        `getAnnotations` in interface `Function`
      Overrides:
        `getAnnotations` in class `AbstractFunction`
      Returns:
        the function annotations

    - #### getFunctionName

          public StructuredQName getFunctionName()

      Description copied from interface: `Function`
      Get the name of the function, or null if it is anonymous
      Specified by:
        `getFunctionName` in interface `Function`
      Returns:
        the function name, or null for an anonymous inline function

    - #### getArity

          public int getArity()

      Description copied from interface: `Function`
      Get the arity of the function
      Specified by:
        `getArity` in interface `Function`
      Returns:
        the number of arguments in the function signature

    - #### getDescription

          public java.lang.String getDescription()

      Description copied from interface: `Function`
      Get a description of this function for use in error messages. For named functions, the description is the function name (as a lexical QName). For others, it might be, for example, "inline function", or "partially-applied ends-with function".
      Specified by:
        `getDescription` in interface `Function`
      Returns:
        a description of the function for use in error messages

    - #### export

          public void export​(ExpressionPresenter out)
                      throws XPathException

      Description copied from class: `AbstractFunction`
      Output information about this function item to the diagnostic explain() output
      Specified by:
        `export` in interface `Function`
      Overrides:
        `export` in class `AbstractFunction`
      Throws:
        `XPathException`