Package net.sf.saxon.functions.registry
Class BuiltInFunctionSet.Entry
java.lang.Object
net.sf.saxon.functions.registry.BuiltInFunctionSet.Entry
- All Implemented Interfaces:
FunctionDefinition
- Enclosing class:
BuiltInFunctionSet
An entry in the table describing the properties of a function
-
Field Summary
FieldsModifier and TypeFieldDescriptionint
The cardinality of the result of the functionAn array holding functions to evaluate default arguments.The function set in which this function is definedThe class containing the implementation of this function (always a subclass of SystemFunction)The item type of the result of the functionint
The upper bound of the arity rangeint
The lower bound of the arity rangeThe name of the function as a QNameFor options parameters, details of the accepted options, their defaults, and required typeString[]
An array holding the names of the parameters to the functionAn array holding the types of the parameters to the functionint
Any additional properties.Sequence[]
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 possibleThe syntactic context of each argument for the purposes of streamability analysis -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionAdd information to a function entry about the argument types of the functionvoid
getDefaultValueExpression
(int i) Get the default value expression of the Nth parameter, if anyGet the name of the functionint
Get the number of mandatory arguments (the lower bound of the arity range)int
Get the number of declared parameters (the upper bound of the arity range)getParameterName
(int i) Get the name (keyword) of the Nth parameterint
Get the position in the parameter list of a given parameter namepopulate
(Supplier<SystemFunction> functionFactory, ItemType itemType, int cardinality, int properties) setOptionDetails
(OptionsParameter details) Add details for options parameters (only applies to one argument, the function is expected to know which)
-
Field Details
-
name
The name of the function as a QName -
implementationFactory
The class containing the implementation of this function (always a subclass of SystemFunction) -
populator
-
functionSet
The function set in which this function is defined -
maxArity
public int maxArityThe upper bound of the arity range -
minArity
public int minArityThe lower bound of the arity range -
itemType
The item type of the result of the function -
cardinality
public int cardinalityThe cardinality of the result of the function -
usage
The syntactic context of each argument for the purposes of streamability analysis -
paramNames
An array holding the names of the parameters to the function -
paramTypes
An array holding the types of the parameters to the function -
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 -
defaultValueExpressions
An array holding functions to evaluate default arguments. The array is allocated only if there are parameters with default values defined -
properties
public int propertiesAny 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
For options parameters, details of the accepted options, their defaults, and required type
-
-
Constructor Details
-
Entry
public Entry()
-
-
Method Details
-
ensurePopulated
public void ensurePopulated() -
populate
public BuiltInFunctionSet.Entry populate(Supplier<SystemFunction> functionFactory, ItemType itemType, int cardinality, int properties) -
arg
Add information to a function entry about the argument types of the function- Parameters:
a
- the position of the argument, counting from zerotype
- the item type of the argumentoptions
- the cardinality and usage of the argumentresultIfEmpty
- 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)
-
setOptionDetails
Add details for options parameters (only applies to one argument, the function is expected to know which) -
getFunctionName
Get the name of the function- Specified by:
getFunctionName
in interfaceFunctionDefinition
- Returns:
- the function name
-
getNumberOfParameters
public int getNumberOfParameters()Description copied from interface:FunctionDefinition
Get the number of declared parameters (the upper bound of the arity range)- Specified by:
getNumberOfParameters
in interfaceFunctionDefinition
- Returns:
- the number of declared parameters
-
getMinimumArity
public int getMinimumArity()Get the number of mandatory arguments (the lower bound of the arity range)- Specified by:
getMinimumArity
in interfaceFunctionDefinition
- Returns:
- the number of mandatory arguments
-
getParameterName
Get the name (keyword) of the Nth parameter- Specified by:
getParameterName
in interfaceFunctionDefinition
- Parameters:
i
- the position of the required parameter- Returns:
- the expression for computing the value of the Nth parameter
-
getDefaultValueExpression
Get the default value expression of the Nth parameter, if any- Specified by:
getDefaultValueExpression
in interfaceFunctionDefinition
- Parameters:
i
- the position of the required parameter- Returns:
- the expression for computing the value of the Nth parameter, or null if there is none
-
getPositionOfParameter
Get the position in the parameter list of a given parameter name- Specified by:
getPositionOfParameter
in interfaceFunctionDefinition
- Parameters:
name
- the name of the required parameter- Returns:
- the position of the parameter in the parameter list, or -1 if absent
-