Package net.sf.saxon.instruct
Class UserFunctionParameter
java.lang.Object
net.sf.saxon.instruct.UserFunctionParameter
- All Implemented Interfaces:
Serializable
,Binding
Run-time object representing a formal argument to a user-defined function
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionevaluateVariable
(XPathContext context) Evaluate this function parameterint
If this is a local variable held on the local stack frame, return the corresponding slot number.int
Get the (nominal) number of references within the function body to this parameter, where a reference inside a loop is counted as multiple referencesGet the required type of this function parameterGet the name of this parameterfinal boolean
Test whether it is permitted to assign to the variable using the saxon:assign extension element.final boolean
isGlobal()
Indicate whether the binding is local or global.boolean
Ask whether this parameter requires support for indexingvoid
setIndexedVariable
(boolean indexed) Indicate that this parameter requires (or does not require) support for indexingvoid
setReferenceCount
(int count) Set the (nominal) number of references within the function body to this parameter, where a reference inside a loop is counted as multiple referencesvoid
setRequiredType
(SequenceType type) Set the required type of this function parametervoid
setSlotNumber
(int slot) Set the slot number to be used by this parametervoid
Set the name of this parameter
-
Constructor Details
-
UserFunctionParameter
public UserFunctionParameter()Create a UserFunctionParameter
-
-
Method Details
-
isGlobal
public final boolean isGlobal()Indicate whether the binding is local or global. A global binding is one that has a fixed value for the life of a query or transformation; any other binding is local. -
isAssignable
public final boolean isAssignable()Test whether it is permitted to assign to the variable using the saxon:assign extension element. This will only be for an XSLT global variable where the extra attribute saxon:assignable="yes" is present.- Specified by:
isAssignable
in interfaceBinding
- Returns:
- false (always)
-
setSlotNumber
public void setSlotNumber(int slot) Set the slot number to be used by this parameter- Parameters:
slot
- the slot number, that is, the position of the parameter value within the local stack frame
-
getLocalSlotNumber
public int getLocalSlotNumber()If this is a local variable held on the local stack frame, return the corresponding slot number. In other cases, return -1.- Specified by:
getLocalSlotNumber
in interfaceBinding
- Returns:
- the slot number, indicating the position of the parameter on the local stack frame
-
setRequiredType
Set the required type of this function parameter- Parameters:
type
- the declared type of the parameter
-
getRequiredType
Get the required type of this function parameter- Specified by:
getRequiredType
in interfaceBinding
- Returns:
- the declared type of the parameter
-
setVariableQName
Set the name of this parameter- Parameters:
name
- the name of the parameter
-
getVariableQName
Get the name of this parameter- Specified by:
getVariableQName
in interfaceBinding
- Returns:
- the name of this parameter
-
setReferenceCount
public void setReferenceCount(int count) Set the (nominal) number of references within the function body to this parameter, where a reference inside a loop is counted as multiple references- Parameters:
count
- the nominal number of references
-
getReferenceCount
public int getReferenceCount()Get the (nominal) number of references within the function body to this parameter, where a reference inside a loop is counted as multiple references- Returns:
- the nominal number of references
-
setIndexedVariable
public void setIndexedVariable(boolean indexed) Indicate that this parameter requires (or does not require) support for indexing- Parameters:
indexed
- true if support for indexing is required. This will be set if the parameter is used in a filter expression such as $param[@a = 17]
-
isIndexedVariable
public boolean isIndexedVariable()Ask whether this parameter requires support for indexing- Returns:
- true if support for indexing is required. This will be set if the parameter is used in a filter expression such as $param[@a = 17]
-
evaluateVariable
Evaluate this function parameter- Specified by:
evaluateVariable
in interfaceBinding
- Parameters:
context
- the XPath dynamic context- Returns:
- the value of the parameter
- Throws:
XPathException
- if an error occurs
-