Package net.sf.saxon.functions.registry

## Class BuiltInFunctionSet.Entry

- java.lang.Object
- - net.sf.saxon.functions.registry.BuiltInFunctionSet.Entry

- Enclosing class:
    BuiltInFunctionSet

      public static class BuiltInFunctionSet.Entry
      extends java.lang.Object

  An entry in the table describing the properties of a function

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `SequenceType[]` | `argumentTypes` | An array holding the types of the arguments to the function
    `int` | `arity` | The arity of the function
    `int` | `cardinality` | The cardinality of the result of the function
    `java.lang.Class` | `implementationClass` | The class containing the implementation of this function (always a subclass of SystemFunction)
    `ItemType` | `itemType` | The item type of the result of the function
    `StructuredQName` | `name` | The name of the function as a QName
    `OptionsParameter` | `optionDetails` | For options parameters, details of the accepted options, their defaults, and required type
    `int` | `properties` | Any additional properties.
    `Sequence[]` | `resultIfEmpty` | An array holding, for each declared argument, the value that is to be returned if an empty sequence as the value of this argument allows the result to be determined irrespective of the values of the other arguments; null if there is no such calculation possible
    `OperandUsage[]` | `usage` | The syntactic context of each argument for the purposes of streamability analysis

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `BuiltInFunctionSet.Entry` | `arg​(int a, ItemType type, int options, Sequence resultIfEmpty)` | Add information to a function entry about the argument types of the function
    `BuiltInFunctionSet.Entry` | `optionDetails​(OptionsParameter details)` | Add details for options parameters (only applies to one argument, the function is expected to know which)

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### name

          public StructuredQName name

      The name of the function as a QName

    - #### implementationClass

          public java.lang.Class implementationClass

      The class containing the implementation of this function (always a subclass of SystemFunction)

    - #### arity

          public int arity

      The arity of the function

    - #### itemType

          public ItemType itemType

      The item type of the result of the function

    - #### cardinality

          public int cardinality

      The cardinality of the result of the function

    - #### usage

          public OperandUsage[] usage

      The syntactic context of each argument for the purposes of streamability analysis

    - #### argumentTypes

          public SequenceType[] argumentTypes

      An array holding the types of the arguments to the function

    - #### resultIfEmpty

          public Sequence[] resultIfEmpty

      An array holding, for each declared argument, the value that is to be returned if an empty sequence as the value of this argument allows the result to be determined irrespective of the values of the other arguments; null if there is no such calculation possible

    - #### properties

          public int properties

      Any additional properties. Various bit settings are defined: for example SAME_AS_FIRST_ARGUMENT indicates that the result type is the same as the type of the first argument

    - #### optionDetails

          public OptionsParameter optionDetails

      For options parameters, details of the accepted options, their defaults, and required type

  - ### Constructor Detail

    - #### Entry

          public Entry()

  - ### Method Detail

    - #### arg

          public BuiltInFunctionSet.Entry arg​(int a,
                                              ItemType type,
                                              int options,
                                              Sequence resultIfEmpty)

      Add information to a function entry about the argument types of the function
      Parameters:
        `a` - the position of the argument, counting from zero
        `type` - the item type of the argument
        `options` - the cardinality and usage 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.
      Returns:
        this entry (to allow chaining)

    - #### optionDetails

          public BuiltInFunctionSet.Entry optionDetails​(OptionsParameter details)

      Add details for options parameters (only applies to one argument, the function is expected to know which)