Class 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 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​(GlobalParameterSet 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,
                                          XPathContext context)
                                   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
        Throws:
        XPathException
      • 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
      • 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 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.
      • 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.
      • 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
      • 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.