Class StandardFunction


  • public abstract class StandardFunction
    extends java.lang.Object
    This class contains static data tables defining the properties of standard functions. "Standard functions" here means the XPath 2.0 functions, the XSLT 2.0 functions, and a few selected extension functions which need special recognition.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  StandardFunction.Entry
      An entry in the table describing the properties of a function
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void arg​(StandardFunction.Entry e, int a, ItemType type, int cardinality, Value resultIfEmpty)
      Add information to a function entry about the argument types of the function
      static StandardFunction.Entry getFunction​(java.lang.String name, int arity)
      Get the table entry for the function with a given name
      static StandardFunction.Entry makeEntry​(java.lang.String name, java.lang.Class implementationClass, int opcode, int minArguments, int maxArguments, ItemType itemType, int cardinality, int applicability)
      Make a table entry describing the signature of a function, with a reference to the implementation class.
      static StandardFunction.Entry register​(java.lang.String name, java.lang.Class implementationClass, int opcode, int minArguments, int maxArguments, ItemType itemType, int cardinality, int applicability)
      Register a system function in the table of function details.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • register

        public static StandardFunction.Entry register​(java.lang.String name,
                                                      java.lang.Class implementationClass,
                                                      int opcode,
                                                      int minArguments,
                                                      int maxArguments,
                                                      ItemType itemType,
                                                      int cardinality,
                                                      int applicability)
        Register a system function in the table of function details.
        Parameters:
        name - the function name
        implementationClass - the class used to implement the function
        opcode - identifies the function when a single class implements several functions
        minArguments - the minimum number of arguments required
        maxArguments - the maximum number of arguments allowed
        itemType - the item type of the result of the function
        cardinality - the cardinality of the result of the function
        applicability - the host languages (and versions thereof) in which this function is available
        Returns:
        the entry describing the function. The entry is incomplete, it does not yet contain information about the function arguments.
      • makeEntry

        public static StandardFunction.Entry makeEntry​(java.lang.String name,
                                                       java.lang.Class implementationClass,
                                                       int opcode,
                                                       int minArguments,
                                                       int maxArguments,
                                                       ItemType itemType,
                                                       int cardinality,
                                                       int applicability)
        Make a table entry describing the signature of a function, with a reference to the implementation class.
        Parameters:
        name - the function name
        implementationClass - the class used to implement the function
        opcode - identifies the function when a single class implements several functions
        minArguments - the minimum number of arguments required
        maxArguments - the maximum number of arguments allowed
        itemType - the item type of the result of the function
        cardinality - the cardinality of the result of the function
        applicability - the host languages (and versions of) in which this function is available
        Returns:
        the entry describing the function. The entry is incomplete, it does not yet contain information about the function arguments.
      • arg

        public static void arg​(StandardFunction.Entry e,
                               int a,
                               ItemType type,
                               int cardinality,
                               Value resultIfEmpty)
        Add information to a function entry about the argument types of the function
        Parameters:
        e - the entry for the function
        a - the position of the argument, counting from zero
        type - the item type of the argument
        cardinality - the cardinality of the argument
        resultIfEmpty - the value returned by the function if an empty sequence appears as the value of this argument, in the case when this result is unaffected by any other arguments. Supply null if this does not apply.
      • getFunction

        public static StandardFunction.Entry getFunction​(java.lang.String name,
                                                         int arity)
        Get the table entry for the function with a given name
        Parameters:
        name - the name of the function. This may be an unprefixed local-name for functions in the system namespace, or may use the conventional prefix "saxon:" in the case of Saxon extension functions that are specially recognized
        arity - the number of arguments of the function
        Returns:
        if the function name is known, an Entry containing information about the function. Otherwise, null