net.sf.saxon.expr

Interface Binding

Known Implementing Classes:
Assign, Assignation, EagerLetExpression, ForExpression, GeneralVariable, GlobalParam, GlobalVariable, JAXPVariable, LetExpression, LocalParam, LocalVariable, PositionVariable, QuantifiedExpression, SQLColumn.ColumnInstruction, UserFunctionParameter, WithParam, XPathVariable

public interface Binding

Binding is a interface used to represent the run-time properties and methods associated with a variable: specifically, a method to get the value of the variable.

Method Summary

ValueRepresentation
evaluateVariable(XPathContext context)
Evaluate the variable
int
getLocalSlotNumber()
If this is a local variable held on the local stack frame, return the corresponding slot number.
SequenceType
getRequiredType()
Get the declared type of the variable
StructuredQName
getVariableQName()
Get the name of the variable
boolean
isAssignable()
Test whether it is permitted to assign to the variable using the saxon:assign extension element.
boolean
isGlobal()
Indicate whether the binding is local or global.

Method Details

evaluateVariable

public ValueRepresentation evaluateVariable(XPathContext context)
            throws XPathException
Evaluate the variable
Parameters:
context - the XPath dynamic evaluation context
Returns:
the result of evaluating the variable

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.
Returns:
the slot number on the local stack frame

getRequiredType

public SequenceType getRequiredType()
Get the declared type of the variable
Returns:
the declared type

getVariableQName

public StructuredQName getVariableQName()
Get the name of the variable
Returns:
the name of the variable, as a structured QName

isAssignable

public 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.
Returns:
true if the binding is assignable

isGlobal

public 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.
Returns:
true if the binding is global