public class DynamicFunctionCallDefinition extends ExtensionFunctionDefinition
Modifier and Type | Class and Description |
---|---|
static class |
DynamicFunctionCallDefinition.DynamicFunctionCall |
Constructor and Description |
---|
DynamicFunctionCallDefinition() |
Modifier and Type | Method and Description |
---|---|
boolean |
dependsOnFocus()
Ask whether the result of the function depends on the focus, or on other variable parts
of the context.
|
SequenceType[] |
getArgumentTypes()
Get the required types for the arguments of this function, counting from zero
|
StructuredQName |
getFunctionQName()
Get the function name, as a QName
|
int |
getMaximumNumberOfArguments()
Get the maximum number of arguments allowed by the function
|
int |
getMinimumNumberOfArguments()
Get the minimum number of arguments required by the function
|
SequenceType |
getResultType(SequenceType[] suppliedArgumentTypes)
Get the type of the result of the function
|
ExtensionFunctionCall |
makeCallExpression()
Create a call on this function.
|
hasSideEffects, trustResultType
public StructuredQName getFunctionQName()
getFunctionQName
in class ExtensionFunctionDefinition
public int getMinimumNumberOfArguments()
getMinimumNumberOfArguments
in class ExtensionFunctionDefinition
public int getMaximumNumberOfArguments()
getMaximumNumberOfArguments
in class ExtensionFunctionDefinition
public SequenceType[] getArgumentTypes()
getArgumentTypes
in class ExtensionFunctionDefinition
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.public boolean dependsOnFocus()
dependsOnFocus
in class ExtensionFunctionDefinition
The default implementation returns false.
The method must return true if the function makes use of any of these values from the dynamic context. Returning true inhibits certain optimizations, such as moving the function call out of the body of an xsl:for-each loop, or extracting it into a global variable.
public SequenceType getResultType(SequenceType[] suppliedArgumentTypes)
getResultType
in class ExtensionFunctionDefinition
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.public ExtensionFunctionCall makeCallExpression()
makeCallExpression
in class ExtensionFunctionDefinition
Copyright (c) 2004-2014 Saxonica Limited. All rights reserved.