public final class Bindery
extends java.lang.Object
| Constructor and Description |
|---|
Bindery() |
| Modifier and Type | Method and Description |
|---|---|
void |
allocateGlobals(SlotManager map)
Define how many slots are needed for global variables
|
static Value |
applyFunctionConversionRules(ValueRepresentation value,
SequenceType requiredType,
XPathContext context)
Apply the function conversion rules to a value, given a required type.
|
void |
assignGlobalVariable(GlobalVariable binding,
ValueRepresentation value)
Assign a new value to a global variable.
|
void |
defineGlobalParameters(GlobalParameterSet params)
Define global parameters
|
void |
defineGlobalVariable(GlobalVariable binding,
ValueRepresentation value)
Provide a value for a global variable
|
ValueRepresentation |
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.
|
ValueRepresentation[] |
getGlobalVariables()
Get all the global variables, as an array.
|
ValueRepresentation |
getGlobalVariableValue(GlobalVariable binding)
Get the value of a global variable
|
boolean |
isApplyFunctionConversionRulesToExternalVariables()
Ask whether the function conversion rules should be applied to supplied
parameter values.
|
void |
registerDependency(GlobalVariable one,
GlobalVariable two)
Register the dependency of one variable ("one") upon another ("two"), throwing an exception if this would establish
a cycle of dependencies.
|
ValueRepresentation |
saveGlobalVariableValue(GlobalVariable binding,
ValueRepresentation value)
Save the value of a global variable, and mark evaluation as complete.
|
void |
setApplyFunctionConversionRulesToExternalVariables(boolean convert)
Say whether the function conversion rules should be applied to supplied
parameter values.
|
boolean |
setExecuting(GlobalVariable binding)
Set/Unset a flag to indicate that a particular global variable is currently being
evaluated.
|
void |
setGlobalVariable(int slot,
ValueRepresentation value)
Set the value of a global variable whose slot number is known
|
void |
setNotExecuting(GlobalVariable binding)
Indicate that a global variable is not currently being evaluated
|
boolean |
useGlobalParameter(StructuredQName qName,
int slot,
SequenceType requiredType,
XPathContext context)
Use global parameter.
|
public void allocateGlobals(SlotManager map)
map - the SlotManager that keeps track of slot allocation for global variables.public void setApplyFunctionConversionRulesToExternalVariables(boolean convert)
convert - true if function conversion rules are to be applied to supplied
values; if false, the supplied value must match the required type exactly.public boolean isApplyFunctionConversionRulesToExternalVariables()
public void defineGlobalParameters(GlobalParameterSet params)
params - The ParameterSet passed in by the user, eg. from the command linepublic boolean useGlobalParameter(StructuredQName qName, int slot, SequenceType requiredType, XPathContext context) throws XPathException
qName - The name of the parameterslot - The slot number allocated to the parameterrequiredType - The declared type of the parametercontext - the XPath dynamic evaluation contextXPathExceptionpublic static Value applyFunctionConversionRules(ValueRepresentation value, SequenceType requiredType, XPathContext context) throws XPathException
value - a value to be convertedrequiredType - the required typecontext - the conversion contextXPathException - if the value cannot be converted to the required typepublic void defineGlobalVariable(GlobalVariable binding, ValueRepresentation value)
binding - identifies the variablevalue - the value of the variablepublic boolean setExecuting(GlobalVariable binding) throws XPathException
binding - the global variable in questionXPathException - If an attempt is made to set the flag when it is already set, this means
the definition of the variable is circular.public void setNotExecuting(GlobalVariable binding)
binding - the global variablepublic ValueRepresentation saveGlobalVariableValue(GlobalVariable binding, ValueRepresentation value)
binding - the global variable in questionvalue - the value that this thread has obtained by evaluating the variablepublic ValueRepresentation getGlobalVariableValue(GlobalVariable binding)
binding - the Binding that establishes the unique instance of the variablepublic ValueRepresentation getGlobalVariable(int slot)
slot - the slot number of the required variablepublic void setGlobalVariable(int slot,
ValueRepresentation value)
slot - the slot number of the required variablevalue - the Value of the variable if defined, null otherwise.public void assignGlobalVariable(GlobalVariable binding, ValueRepresentation value)
binding - identifies the global variable or parametervalue - the value to be assigned to the variablepublic SlotManager getGlobalVariableMap()
public ValueRepresentation[] getGlobalVariables()
public void registerDependency(GlobalVariable one, GlobalVariable two) throws XPathException
one - the first (dependent) variabletwo - the second (dependee) variableXPathException - if adding this dependency creates a cycle of dependencies among global variables.