Interface Function

    • Method Detail

      • isMap

        boolean isMap()
        Ask whether this function item is a map
        Returns:
        true if this function item is a map, otherwise false
      • isArray

        boolean isArray()
        Ask whether this function item is an array
        Returns:
        true if this function item is an array, otherwise false
      • getFunctionItemType

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

        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
      • getArity

        int getArity()
        Get the arity of the function
        Returns:
        the number of arguments in the function signature
      • isSequenceVariadic

        default boolean isSequenceVariadic()
        Ask whether the function is sequence-variadic (accepts a variable number of arguments)
        Returns:
        true if the function is sequence-variadic; default is false
      • getOperandRoles

        OperandRole[] getOperandRoles()
        Get the roles of the arguments, for the purposes of streaming
        Returns:
        an array of OperandRole objects, one for each argument
      • getAnnotations

        AnnotationList getAnnotations()
        Get the function annotations (as defined in XQuery). Returns an empty list if there are no function annotations.
        Returns:
        the function annotations
      • makeNewContext

        XPathContext makeNewContext​(XPathContext callingContext,
                                    ContextOriginator originator)
        Prepare an XPathContext object for evaluating the function
        Parameters:
        callingContext - 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)
      • deepEquals

        boolean deepEquals​(Function other,
                           XPathContext context,
                           AtomicComparer comparer,
                           int flags)
                    throws XPathException
        Test whether this FunctionItem is deep-equal to another function item, under the rules of the deep-equal function
        Parameters:
        other - the other function item
        context - the dynamic evaluation context
        comparer - the object to perform the comparison
        flags - options for how the comparison is performed
        Returns:
        true if the two function items are deep-equal
        Throws:
        XPathException - if the comparison cannot be performed
      • getDescription

        java.lang.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
      • export

        void export​(ExpressionPresenter out)
             throws XPathException
        Output information about this function item to the diagnostic explain() output
        Parameters:
        out - the destination for the information
        Throws:
        XPathException - if things go wrong
      • isTrustedResultType

        boolean isTrustedResultType()
        Ask if the function can be trusted to return a result of the correct type
        Returns:
        true if the implementation can be trusted
      • toShortString

        default java.lang.String toShortString()
        Provide a short string showing the contents of the item, suitable for use in error messages
        Specified by:
        toShortString in interface GroundedValue
        Specified by:
        toShortString in interface Item
        Returns:
        a depiction of the item suitable for use in error messages
      • getGenre

        default Genre getGenre()
        Get the genre of this item
        Specified by:
        getGenre in interface Item
        Returns:
        the genre: specifically, Genre.FUNCTION. Overridden for maps and arrays.
      • getSerialNumber

        long getSerialNumber()
        Allocate a unique serial number.

        Introduced on the 11.x branch for bug #5887, so that function items, arrays, and maps can be used as keys for memo functions. This is not needed for 12.x, which uses a different design.