Class XdmFunctionItem

All Implemented Interfaces:
Iterable<XdmItem>
Direct Known Subclasses:
XdmArray, XdmMap

public class XdmFunctionItem extends XdmItem
The class XdmFunctionItem represents a function item. There are subclasses for maps and arrays.
  • Constructor Details

    • XdmFunctionItem

      public XdmFunctionItem(FunctionItem fi)
      Create an XdmFunctionItem that wraps a supplied Function. This method is primarily for internal use, though it is also available to applications that manipulate data using lower-level Saxon interfaces.
      Parameters:
      fi - the function value to be wrapped.
  • Method Details

    • getName

      public QName getName()
      Get the name of the function
      Returns:
      the function name, as a QName, or null for an anonymous inline function item
    • getArity

      public int getArity()
      Get the arity of the function
      Returns:
      the arity of the function, that is, the number of arguments in the function's signature
    • isAtomicValue

      public boolean isAtomicValue()
      Determine whether the item is an atomic value
      Overrides:
      isAtomicValue in class XdmItem
      Returns:
      false, the item is not an atomic value, it is a function item
    • getSystemFunction

      public static XdmFunctionItem getSystemFunction(Processor processor, QName name, int arity) throws SaxonApiException
      Get a system function. This can be any function defined in XPath 3.1 functions and operators, including functions in the math, map, and array namespaces. It can also be a Saxon extension function, provided a licensed Processor is used.
      Parameters:
      processor - the processor
      name - the name of the requested function
      arity - the arity of the requested function
      Returns:
      the requested function, or null if there is no such function. Note that some functions (those with particular context dependencies) may be unsuitable for dynamic calling.
      Throws:
      SaxonApiException - No longer thrown, but remains in the method signature for backwards compatibility
    • asFunction

      public Function<? super XdmValue,? extends XdmValue> asFunction(Processor processor)
      Get an equivalent Java Function object representing this XDM Function. This is possible only for arity-1 functions.
      Parameters:
      processor - the processor
      Returns:
      a Java Function. This takes an XdmValue as its argument, and returns the function result in the form of an XdmValue. The Function throws an unchecked exception if evaluation fails
      Throws:
      IllegalStateException - if the arity of the function is not one (1).
    • asStep

      public Step<XdmItem> asStep(Processor processor)
      Get an equivalent Step object representing this XdmFunction. This is possible only for arity-1 functions.
      Parameters:
      processor - the processor
      Returns:
      a Step. This takes an XdmItem as its argument, and returns the function result in the form of an XdmStream. The Function throws an unchecked exception if evaluation fails
      Throws:
      IllegalStateException - if the arity of the function is not one (1).
    • call

      public XdmValue call(Processor processor, XdmValue... arguments) throws SaxonApiException
      Call the function
      Parameters:
      processor - the s9api Processor
      arguments - the values to be supplied as arguments to the function. The "function conversion rules" will be applied to convert the arguments to the required type when necessary. The conversion rules that apply are those defined in the XPath 3.1 specification.
      Returns:
      the result of calling the function
      Throws:
      SaxonApiException - if an error is detected