Package com.icl.saxon

Class Bindery

java.lang.Object
com.icl.saxon.Bindery

public final class Bindery extends Object
The Bindery class holds information about variables and their values. Variables are identified by a Binding object. Values can be any object, though values of XSL variables will always be of class Value.
  • Constructor Details

    • Bindery

      public Bindery()
  • Method Details

    • allocateGlobals

      public void allocateGlobals(int n)
      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, Binding binding)
      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
    • defineGlobalVariable

      public void defineGlobalVariable(Binding binding, Value value)
      Define global variable
      Parameters:
      value - the value of the variable
      name - the name of the variable
    • setExecuting

      public void setExecuting(Binding 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.
    • isEvaluated

      public boolean isEvaluated(Binding binding)
      Test if global variable has already been evaluated
    • allocateLocals

      public void allocateLocals(int n)
      Define how many slots are needed for local variables. We work on the basis of "one size fits all": all stackframes are allocated as large as the largest one needed
    • openStackFrame

      public void openStackFrame(ParameterSet localParameters)
      Start a new stack frame for local variables
    • closeStackFrame

      public void closeStackFrame()
      Close the current stack frame for local variables
    • useLocalParameter

      public boolean useLocalParameter(int fingerprint, Binding binding)
      Use local parameter. This is called when a local 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 name
      binding - The XSLParam element to bind its value to
      Returns:
      true if a parameter of this name was supplied, false if not
    • getLocalParameter

      public Value getLocalParameter(int fingerprint)
      Get local parameter. This method is available to user-written node handlers invoked via the saxon:handler interface, it allows them to retrieve the values of parameters set up within a calling XSL template.
      Returns:
      The value of the parameter, or null if not supplied
    • defineLocalVariable

      public void defineLocalVariable(Binding binding, Value value)
      Define local variable
      Parameters:
      value - the value of the variable
      name - the name of the variable
    • getValue

      public Value getValue(Binding binding)
      Get the value of a variable
      Parameters:
      binding - the Binding that establishes the unique instance of the variable
      Returns:
      the Value of the variable if defined, null otherwise.
    • getValue

      public Value getValue(Binding binding, int frameId)
      Get the value of a variable in the given frame
      Parameters:
      binding - the Binding that establishes the unique instance of the variable
      frameId - the id of the frame, see getFrameId
      Returns:
      the Value of the variable if defined, null otherwise.
    • getFrameId

      public int getFrameId()
      Get the id of the current frame.
      Returns:
      an id, that may be given to getValue(Binding,int)
    • assignVariable

      public void assignVariable(Binding binding, Value value)
      Assign a new value to a variable
      Parameters:
      name - the name of the local or global variable or parameter (without a $ sign)