Package net.sf.saxon.functions.hof

## Class FunctionLookup

- java.lang.Object
- - net.sf.saxon.functions.AbstractFunction
  - - net.sf.saxon.functions.SystemFunction
    - - net.sf.saxon.functions.ContextAccessorFunction
      - - net.sf.saxon.functions.hof.FunctionLookup

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

      public class FunctionLookup
      extends ContextAccessorFunction

  This class supports the function-lookup() function in XPath 3.0. It takes as arguments a function name (QName) and arity, and returns a function item representing that function if found, or an empty sequence if not found.

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Function` | `bindContext​(XPathContext context)` | Bind a context item to appear as part of the function's closure.
    `ZeroOrOne` | `call​(XPathContext context, Sequence[] arguments)` | Evaluate the expression
    `boolean` | `equals​(java.lang.Object o)` | Determine whether two expressions are equivalent
    `Function` | `lookup​(StructuredQName name, int arity, XPathContext context)` |
    `Expression` | `makeFunctionCall​(Expression... arguments)` | Make an expression that either calls this function, or that is equivalent to a call on this function

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

      `dependsOnContextItem, dynamicCall, export, exportAdditionalArguments, exportAttributes, fixArguments, getArity, getCardinality, getCompilerName, getContextNode, getDescription, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getFunctionName, getIntegerBounds, getNetCost, getOperandRoles, getRequiredType, getResultItemType, getResultItemType, getRetainedStaticContext, getSpecialProperties, getStaticBaseUriString, getStreamerName, importAttributes, isTrustedResultType, makeCall, makeFunction, makeOptimizedFunctionCall, 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

    - #### FunctionLookup

          public FunctionLookup()

  - ### Method Detail

    - #### makeFunctionCall

          public Expression makeFunctionCall​(Expression... arguments)

      Description copied from class: `SystemFunction`
      Make an expression that either calls this function, or that is equivalent to a call on this function
      Overrides:
        `makeFunctionCall` in class `SystemFunction`
      Parameters:
        `arguments` - the supplied arguments to the function call
      Returns:
        either a function call on this function, or an expression that delivers the same result

    - #### equals

          public boolean equals​(java.lang.Object o)

      Determine whether two expressions are equivalent
      Overrides:
        `equals` in class `SystemFunction`

    - #### bindContext

          public Function bindContext​(XPathContext context)

      Bind a context item to appear as part of the function's closure. If this method has been called, the supplied context item will be used in preference to the context item at the point where the function is actually called.
      Specified by:
        `bindContext` in class `ContextAccessorFunction`
      Parameters:
        `context` - the context to which the function applies. Must not be null.

    - #### lookup

          public Function lookup​(StructuredQName name,
                                 int arity,
                                 XPathContext context)
                          throws XPathException

      Throws:
        `XPathException`

    - #### call

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

      Evaluate the expression
      Specified by:
        `call` in interface `Callable`
      Specified by:
        `call` in interface `Function`
      Overrides:
        `call` in class `ContextAccessorFunction`
      Parameters:
        `context` - the dynamic evaluation context
        `arguments` - the values of the arguments, supplied as SequenceIterators
      Returns:
        the result of the evaluation, in the form of a SequenceIterator
      Throws:
        `XPathException` - if a dynamic error occurs during the evaluation of the expression