## net.sf.saxon.instruct
Class Bindery

    java.lang.Object
      |
      +--net.sf.saxon.instruct.Bindery

public final class Bindery
extends java.lang.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.

Constructor Summary
`Bindery()`

Method Summary
`void` `allocateGlobals(SlotManager map)` Define how many slots are needed for global variables
`void` `assignGlobalVariable(GlobalVariable binding, Value value)` Assign a new value to a global variable.
`void` `defineGlobalParameters(ParameterSet params)` Define global parameters
`void` `defineGlobalVariable(GlobalVariable binding, Value value)` Provide a value for a global variable
`Value` `getGlobalVariable(int slot)` Get the value of a global variable whose slot number is known
`SlotManager` `getGlobalVariableMap()` Get the Global Variable Map, containing the mapping of variable names (fingerprints) to slot numbers.
`Value[]` `getGlobalVariables()` Get all the global variables, as an array.
`Value` `getGlobalVariableValue(GlobalVariable binding)` Get the value of a global variable
`void` `setExecuting(GlobalVariable binding, boolean executing)` Set/Unset a flag to indicate that a particular global variable is currently being evaluated.
`boolean` `useGlobalParameter(int fingerprint, GlobalParam binding)` Use global parameter.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Bindery

    public Bindery()

Method Detail

### allocateGlobals

    public void allocateGlobals(SlotManager map)

  Define how many slots are needed for global variables

### defineGlobalParameters

    public void defineGlobalParameters(ParameterSet params)

  Define global parameters

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

### useGlobalParameter

    public boolean useGlobalParameter(int fingerprint,
                                      GlobalParam binding)
                               throws XPathException

  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
    `XPathException`

### defineGlobalVariable

    public void defineGlobalVariable(GlobalVariable binding,
                                     Value value)

  Provide a value for a global variable

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

### setExecuting

    public void setExecuting(GlobalVariable binding,
                             boolean executing)
                      throws XPathException

  Set/Unset a flag to indicate that a particular global variable is currently being evaluated.

  Throws:
    `XPathException` - If an attempt is made to set the flag when it is already set, this means the definition of the variable is circular.

### getGlobalVariableValue

    public Value 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.

### getGlobalVariable

    public Value 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.

### assignGlobalVariable

    public void assignGlobalVariable(GlobalVariable binding,
                                     Value value)

  Assign a new value to a global variable. Supports saxon:assign.

  Parameters:
    `binding` - identifies the local or global variable or parameter

### 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 Value[] 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.