Package com.icl.saxon
Class Bindery
- java.lang.Object
-
- com.icl.saxon.Bindery
-
public final class Bindery extends java.lang.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 Summary
Constructors Constructor Description Bindery()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
allocateGlobals(int n)
Define how many slots are needed for global variablesvoid
allocateLocals(int n)
Define how many slots are needed for local variables.void
assignVariable(Binding binding, Value value)
Assign a new value to a variablevoid
closeStackFrame()
Close the current stack frame for local variablesvoid
defineGlobalParameters(ParameterSet params)
Define global parametersvoid
defineGlobalVariable(Binding binding, Value value)
Define global variablevoid
defineLocalVariable(Binding binding, Value value)
Define local variableint
getFrameId()
Get the id of the current frame.Value
getLocalParameter(int fingerprint)
Get local parameter.Value
getValue(Binding binding)
Get the value of a variableValue
getValue(Binding binding, int frameId)
Get the value of a variable in the given frameboolean
isEvaluated(Binding binding)
Test if global variable has already been evaluatedvoid
openStackFrame(ParameterSet localParameters)
Start a new stack frame for local variablesvoid
setExecuting(Binding binding, boolean executing)
Set/Unset a flag to indicate that a particular global variable is currently being evaluated.boolean
useGlobalParameter(int fingerprint, Binding binding)
Use global parameter.boolean
useLocalParameter(int fingerprint, Binding binding)
Use local parameter.
-
-
-
Method Detail
-
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 parameterbinding
- 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:
name
- the name of the variablevalue
- the value of the variable- Throws:
SAXException
- if the variable is already declared
-
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 namebinding
- 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:
name
- the name of the variablevalue
- the value 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 variableframeId
- 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)
-
-