net.sf.saxon.expr
Interface Binding

All Known Implementing Classes:
Assign, Assignation, EagerLetExpression, ForExpression, GeneralVariable, GlobalParam, GlobalVariable, JAXPVariable, LetExpression, LocalParam, LocalVariable, OuterForExpression, PositionVariable, QuantifiedExpression, 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 Detail

getRequiredType

SequenceType getRequiredType()
Get the declared type of the variable

Returns:
the declared type

evaluateVariable

ValueRepresentation evaluateVariable(XPathContext context)
                                     throws XPathException
Evaluate the variable

Parameters:
context - the XPath dynamic evaluation context
Returns:
the result of evaluating the variable
Throws:
XPathException

isGlobal

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

isAssignable

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

getLocalSlotNumber

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

getVariableQName

StructuredQName getVariableQName()
Get the name of the variable

Returns:
the name of the variable, as a structured QName


Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.