Package net.sf.saxon.functions
Class ItemAt
java.lang.Object
net.sf.saxon.lib.ExtensionFunctionDefinition
net.sf.saxon.functions.ItemAt
- All Implemented Interfaces:
Serializable
Implements the saxon:item-at() function. This is handled specially because it is generated
by the optimizer.
The function takes two arguments: the first is an arbitrary sequence, the second is optional numeric. The function returns the same result as let $N := NUMBER return SEQUENCE[$N], including cases where the numeric argument is not a whole number.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGet the required types for the arguments of this function, counting from zeroGet the function name, as a QNameint
Get the maximum number of arguments allowed by the functionint
Get the minimum number of arguments required by the functiongetResultType
(SequenceType[] suppliedArgumentTypes) Get the type of the result of the functionCreate a call on this function.boolean
Ask whether the result actually returned by the function can be trusted, or whether it should be checked against the declared type.Methods inherited from class net.sf.saxon.lib.ExtensionFunctionDefinition
dependsOnFocus, hasSideEffects
-
Constructor Details
-
ItemAt
public ItemAt()
-
-
Method Details
-
getFunctionQName
Get the function name, as a QName- Specified by:
getFunctionQName
in classExtensionFunctionDefinition
- Returns:
- the QName of the function
-
getMinimumNumberOfArguments
public int getMinimumNumberOfArguments()Get the minimum number of arguments required by the function- Overrides:
getMinimumNumberOfArguments
in classExtensionFunctionDefinition
- Returns:
- the minimum number of arguments that must be supplied in a call to this function
-
getMaximumNumberOfArguments
public int getMaximumNumberOfArguments()Get the maximum number of arguments allowed by the function- Overrides:
getMaximumNumberOfArguments
in classExtensionFunctionDefinition
- Returns:
- the maximum number of arguments that may be supplied in a call to this function
-
getArgumentTypes
Get the required types for the arguments of this function, counting from zero- Specified by:
getArgumentTypes
in classExtensionFunctionDefinition
- Returns:
- the required types of the argument, as defined by the function signature. Normally
this should be an array of size
getMaximumNumberOfArguments()
; however for functions that allow a variable number of arguments, the array can be smaller than this, with the last entry in the array providing the required type for all the remaining arguments.
-
getResultType
Get the type of the result of the function- Specified by:
getResultType
in classExtensionFunctionDefinition
- Parameters:
suppliedArgumentTypes
- the static types of the arguments to the function. This is provided so that a more precise result type can be returned in the common case where the type of the result depends on the type of the first argument. The value will be null if the function call has no arguments.- Returns:
- the return type of the function, as defined by its function signature
-
trustResultType
public boolean trustResultType()Ask whether the result actually returned by the function can be trusted, or whether it should be checked against the declared type.- Overrides:
trustResultType
in classExtensionFunctionDefinition
- Returns:
- true if the function implementation warrants that the value it returns will be an instance of the declared result type. The default value is false, in which case the result will be checked at run-time to ensure that it conforms to the declared type. If the value true is returned, but the function returns a value of the wrong type, the consequences are unpredictable.
-
makeCallExpression
Create a call on this function. This method is called by the compiler when it identifies a function call that calls this function.- Specified by:
makeCallExpression
in classExtensionFunctionDefinition
- Returns:
- an expression representing a call of this extension function
-