Class CurriedFunction

java.lang.Object
net.sf.saxon.functions.AbstractFunction
net.sf.saxon.functions.hof.CurriedFunction
All Implemented Interfaces:
Callable, FunctionItem, GroundedValue, Item, Sequence

public class CurriedFunction extends AbstractFunction
A function obtained by currying another function, that is, the result of calling fn:partial-apply
  • Constructor Details

    • CurriedFunction

      public CurriedFunction(FunctionItem targetFunction, Sequence[] boundValues)
      Create a curried function
      Parameters:
      targetFunction - the function to be curried
      boundValues - the values to which the arguments are to be bound, representing unbound values (placeholders) by null
  • Method Details

    • getFunctionItemType

      public FunctionItemType getFunctionItemType()
      Get the item type of the function item
      Returns:
      the function item's type
    • getFunctionName

      public StructuredQName getFunctionName()
      Get the name of the function, or null if it is anonymous
      Returns:
      the function name, or null for an anonymous inline function
    • getDescription

      public String getDescription()
      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".
      Returns:
      a description of the function for use in error messages
    • getArity

      public int getArity()
      Get the arity of the function (equal to the number of placeholders)
      Returns:
      the number of arguments in the function signature
    • getAnnotations

      public AnnotationList getAnnotations()
      Get the function annotations (as defined in XQuery). Returns an empty list if there are no function annotations. The function annotations on a partially applied function are the same as the annotations on its base function.
      Specified by:
      getAnnotations in interface FunctionItem
      Overrides:
      getAnnotations in class AbstractFunction
      Returns:
      the function annotations
    • call

      public Sequence call(XPathContext context, Sequence[] args) throws XPathException
      Invoke the 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 the function reports a dynamic error
    • export

      public void export(ExpressionPresenter out) throws XPathException
      Output information about this function item
      Specified by:
      export in interface FunctionItem
      Overrides:
      export in class AbstractFunction
      Parameters:
      out - the destination to write to
      Throws:
      XPathException - if things go wrong