public class GlobalVariable extends GeneralVariable implements Container
evaluationMode, referenceCount, requiredType, select, slotNumber, variableQNameEVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, PUSH_SELECTION, staticProperties, WATCH_METHOD| Constructor and Description |
|---|
GlobalVariable()
Create a global variable
|
| Modifier and Type | Method and Description |
|---|---|
protected ValueRepresentation |
actuallyEvaluate(XPathContext context)
Evaluate the global variable, and save its value for use in subsequent references.
|
ValueRepresentation |
evaluateVariable(XPathContext context)
Evaluate the variable
|
int |
getContainerGranularity()
Get the granularity of the container.
|
Executable |
getExecutable()
Get the executable containing this global variable
|
int |
getHostLanguage()
Get the host language (XSLT, XQuery, XPath) used to implement the code in this container
|
ValueRepresentation |
getSelectValue(XPathContext context)
Evaluate the variable.
|
boolean |
isGlobal()
Is this a global variable?
|
boolean |
isIndexedVariable()
Ask whether this is an indexed variable
|
void |
lookForCycles(Stack referees,
XQueryFunctionLibrary globalFunctionLibrary)
Check for cycles in this variable definition
|
TailCall |
processLeavingTail(XPathContext context)
Process the variable declaration
|
void |
setContainsLocals(SlotManager map)
The expression that initializes a global variable may itself use local variables.
|
protected static void |
setDependencies(Bindery bindery,
GlobalVariable var,
XPathContext context)
Get the variable that is immediately dependent on this one, and register the dependency, so
that circularities can be detected across threads.
|
void |
setExecutable(Executable executable)
Set the containing executable
|
void |
setIndexedVariable()
Mark this as an indexed variable, to allow fast searching
|
copy, evaluateItem, explain, getCardinality, getEvaluationMode, getInstructionNameCode, getItemType, getLocalSlotNumber, getRequiredType, getSelectExpression, getSlotNumber, getVariableQName, init, isAssignable, isImplicitlyRequiredParam, isRequiredParam, isTunnelParam, iterate, iterateSubExpressions, optimize, promoteInst, replaceSubExpression, setAssignable, setImplicitlyRequiredParam, setReferenceCount, setRequiredParam, setRequiredType, setSelectExpression, setSlotNumber, setTunnel, setVariableQName, simplify, typeCheckassembleParams, assembleTunnelParams, computeCardinality, computeSpecialProperties, createsNewNodes, dynamicError, evaluateAsString, getConstructType, getExpressionName, getImplementationMethod, getInstructionName, getIteratorFromProcessMethod, getSourceLocator, isXSLT, process, promoteaddToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluatePendingUpdates, explain, getColumnNumber, getColumnNumber, getContainer, getDependencies, getEvaluationMethod, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toString, typeErrorclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetLocationProvidergetColumnNumber, getLineNumber, getPublicId, getSystemIdpublic Executable getExecutable()
getExecutable in interface ContainergetExecutable in class Expressionpublic void setExecutable(Executable executable)
executable - the executable that contains this global variablepublic int getHostLanguage()
getHostLanguage in interface ContainergetHostLanguage in class ExpressionConfiguration.XSLT or Configuration.XQUERYpublic void setIndexedVariable()
public boolean isIndexedVariable()
public int getContainerGranularity()
getContainerGranularity in interface Containerpublic void setContainsLocals(SlotManager map)
map - The stack frame map for local variables used while evaluating this global
variable.public boolean isGlobal()
isGlobal in interface BindingisGlobal in class GeneralVariablepublic void lookForCycles(Stack referees, XQueryFunctionLibrary globalFunctionLibrary) throws XPathException
referees - the calls leading up to this one; it's an error if this variable is on the
stack, because that means it calls itself directly or indirectly. The stack may contain
variable definitions (GlobalVariable objects) and user-defined functions (UserFunction objects).
It will never contain the same object more than once.globalFunctionLibrary - the library containing all global functionsXPathExceptionpublic TailCall processLeavingTail(XPathContext context) throws XPathException
processLeavingTail in interface TailCallReturnerprocessLeavingTail in class Instructioncontext - The dynamic context of the transformation, giving access to the current node,
the current variables, etc.XPathExceptionpublic ValueRepresentation getSelectValue(XPathContext context) throws XPathException
getSelectValue in class GeneralVariablecontext - the XPath dynamic contextXPathExceptionpublic ValueRepresentation evaluateVariable(XPathContext context) throws XPathException
evaluateVariable in interface Bindingcontext - the XPath dynamic evaluation contextXPathExceptionprotected ValueRepresentation actuallyEvaluate(XPathContext context) throws XPathException
context - the XPath dynamic contextXPathException - if evaluation failsprotected static void setDependencies(Bindery bindery, GlobalVariable var, XPathContext context) throws XPathException
bindery - the Binderyvar - the global variable or parameter being evaluatedcontext - the dynamic evaluation contextXPathException