net.sf.saxon.expr

Class PositionVariable

Implemented Interfaces:
Binding

public class PositionVariable
extends java.lang.Object
implements Binding

Represents the defining occurrence of the position variable in a for expression within an expression, for example the $p in "for $x at $p in ...".

Constructor Summary

PositionVariable()
Create a RangeVariable

Method Summary

ValueRepresentation
evaluateVariable(XPathContext context)
Get the value of the range variable
int
getLocalSlotNumber()
If this is a local variable held on the local stack frame, return the corresponding slot number.
SequenceType
getRequiredType()
Get the required type (declared type) of the variable
StructuredQName
getVariableQName()
Get the name of the variable, as a namepool name code
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.
void
setSlotNumber(int nr)
Set the slot number for the range variable
void
setVariableQName(StructuredQName variableName)
Set the name of the variable

Constructor Details

PositionVariable

public PositionVariable()
Create a RangeVariable

Method Details

evaluateVariable

public ValueRepresentation evaluateVariable(XPathContext context)
            throws XPathException
Get the value of the range variable
Specified by:
evaluateVariable in interface Binding

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 interface Binding

getRequiredType

public SequenceType getRequiredType()
Get the required type (declared type) of the variable
Specified by:
getRequiredType in interface Binding
Returns:
the required type

getVariableQName

public StructuredQName getVariableQName()
Get the name of the variable, as a namepool name code
Specified by:
getVariableQName in interface Binding
Returns:
the nameCode

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.
Specified by:
isAssignable in interface Binding
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.
Specified by:
isGlobal in interface Binding
Returns:
true if the binding is global

setSlotNumber

public void setSlotNumber(int nr)
Set the slot number for the range variable
Parameters:
nr - the slot number to be used

setVariableQName

public void setVariableQName(StructuredQName variableName)
Set the name of the variable
Parameters:
variableName - the name of the variable