net.sf.saxon.instruct

Class Bindery

public final class Bindery extends Object

The Bindery class holds information about variables and their values. From Saxon 8.1, it is used only for global variables: local variables are now held in the XPathContext object. Variables are identified by a Binding object. Values will always be of class Value.
Method Summary
voidallocateGlobals(SlotManager map)
Define how many slots are needed for global variables
voidassignGlobalVariable(GlobalVariable binding, ValueRepresentation value)
Assign a new value to a global variable.
voiddefineGlobalParameters(GlobalParameterSet params)
Define global parameters
voiddefineGlobalVariable(GlobalVariable binding, ValueRepresentation value)
Provide a value for a global variable
ValueRepresentationgetGlobalVariable(int slot)
Get the value of a global variable whose slot number is known
SlotManagergetGlobalVariableMap()
Get the Global Variable Map, containing the mapping of variable names (fingerprints) to slot numbers.
ValueRepresentation[]getGlobalVariables()
Get all the global variables, as an array.
ValueRepresentationgetGlobalVariableValue(GlobalVariable binding)
Get the value of a global variable
voidsetExecuting(GlobalVariable binding, boolean executing)
Set/Unset a flag to indicate that a particular global variable is currently being evaluated.
booleanuseGlobalParameter(int fingerprint, GlobalParam binding, XPathContext context)
Use global parameter.

Method Detail

allocateGlobals

public void allocateGlobals(SlotManager map)
Define how many slots are needed for global variables

assignGlobalVariable

public void assignGlobalVariable(GlobalVariable binding, ValueRepresentation value)
Assign a new value to a global variable. Supports saxon:assign.

Parameters: binding identifies the local or global variable or parameter

defineGlobalParameters

public void defineGlobalParameters(GlobalParameterSet params)
Define global parameters

Parameters: params The ParameterSet passed in by the user, eg. from the command line

defineGlobalVariable

public void defineGlobalVariable(GlobalVariable binding, ValueRepresentation value)
Provide a value for a global variable

Parameters: binding identifies the variable value the value of the variable

getGlobalVariable

public ValueRepresentation getGlobalVariable(int slot)
Get the value of a global variable whose slot number is known

Parameters: slot the slot number of the required variable

Returns: the Value of the variable if defined, null otherwise.

getGlobalVariableMap

public SlotManager getGlobalVariableMap()
Get the Global Variable Map, containing the mapping of variable names (fingerprints) to slot numbers. This is provided for use by debuggers.

getGlobalVariables

public ValueRepresentation[] getGlobalVariables()
Get all the global variables, as an array. This is provided for use by debuggers that know the layout of the global variables within the array.

getGlobalVariableValue

public ValueRepresentation getGlobalVariableValue(GlobalVariable binding)
Get the value of a global variable

Parameters: binding the Binding that establishes the unique instance of the variable

Returns: the Value of the variable if defined, null otherwise.

setExecuting

public void setExecuting(GlobalVariable binding, boolean executing)
Set/Unset a flag to indicate that a particular global variable is currently being evaluated.

Throws: net.sf.saxon.trans.XPathException If an attempt is made to set the flag when it is already set, this means the definition of the variable is circular.

useGlobalParameter

public boolean useGlobalParameter(int fingerprint, GlobalParam binding, XPathContext context)
Use global parameter. This is called when a global xsl:param element is processed. If a parameter of the relevant name was supplied, it is bound to the xsl:param element. Otherwise the method returns false, so the xsl:param default will be evaluated.

Parameters: fingerprint The fingerprint of the parameter binding The XSLParam element to bind its value to

Returns: true if a parameter of this name was supplied, false if not