Package net.sf.saxon.instruct
Class GlobalVariable
- java.lang.Object
-
- net.sf.saxon.expr.ComputedExpression
-
- net.sf.saxon.instruct.Instruction
-
- net.sf.saxon.instruct.GeneralVariable
-
- net.sf.saxon.instruct.GlobalVariable
-
- All Implemented Interfaces:
java.io.Serializable,javax.xml.transform.SourceLocator,Binding,Container,Expression,TailCallReturner,InstructionInfoProvider
- Direct Known Subclasses:
GlobalParam
public class GlobalVariable extends GeneralVariable
A compiled global variable in a stylesheet or query.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.instruct.GeneralVariable
evaluationMode, nameCode, referenceCount, requiredType, select, slotNumber
-
Fields inherited from class net.sf.saxon.expr.ComputedExpression
locationId, staticProperties
-
Fields inherited from interface net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
-
-
Constructor Summary
Constructors Constructor Description GlobalVariable()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ValueRepresentationevaluateVariable(XPathContext context)Evaluate the variableExecutablegetExecutable()Get the executable containing this expressionintgetHostLanguage()Get the host language (XSLT, XQuery, XPath) used to implement the code in this containerInstructionInfogetInstructionInfo()Get InstructionInfo for this expressionValueRepresentationgetSelectValue(XPathContext context)Evaluate the variable.booleanisGlobal()Is this a global variable?voidlookForCycles(java.util.Stack referees)Check for cycles in this variable definitionTailCallprocessLeavingTail(XPathContext context)Process the variable declarationvoidsetContainsLocals(SlotManager map)The expression that initializes a global variable may itself use local variables.voidsetExecutable(Executable executable)voidsetHostLanguage(int language)-
Methods inherited from class net.sf.saxon.instruct.GeneralVariable
display, evaluateItem, getCardinality, getInstructionNameCode, getItemType, getLocalSlotNumber, getNameCode, getRequiredType, getSelectExpression, getSlotNumber, getVariableFingerprint, getVariableName, init, isAssignable, isImplicitlyRequiredParam, isRequiredParam, isTunnelParam, iterate, iterateSubExpressions, optimize, promoteInst, replaceSubExpression, setAssignable, setImplicitlyRequiredParam, setNameCode, setReferenceCount, setRequiredParam, setRequiredType, setSelectExpression, setSlotNumber, setTunnel, setVariableName, simplify, typeCheck
-
Methods inherited from class net.sf.saxon.instruct.Instruction
appendItem, assembleParams, assembleTunnelParams, computeCardinality, computeSpecialProperties, createsNewNodes, dynamicError, evaluateAsString, getImplementationMethod, getSourceLocator, isXSLT, process, promote
-
Methods inherited from class net.sf.saxon.expr.ComputedExpression
adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, getColumnNumber, getConstructType, getDependencies, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getParentExpression, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasBadParentPointer, markTailFunctionCalls, resetStaticProperties, setLocationId, setParentExpression, setParentExpression, suppressValidation, typeError
-
-
-
-
Method Detail
-
getExecutable
public Executable getExecutable()
Description copied from class:ComputedExpressionGet the executable containing this expression- Specified by:
getExecutablein interfaceContainer- Overrides:
getExecutablein classComputedExpression
-
setExecutable
public void setExecutable(Executable executable)
-
setHostLanguage
public void setHostLanguage(int language)
-
getHostLanguage
public int getHostLanguage()
Description copied from class:ComputedExpressionGet the host language (XSLT, XQuery, XPath) used to implement the code in this container- Specified by:
getHostLanguagein interfaceContainer- Overrides:
getHostLanguagein classComputedExpression- Returns:
- typically
Configuration.XSLTorConfiguration.XQUERY
-
setContainsLocals
public void setContainsLocals(SlotManager map)
The expression that initializes a global variable may itself use local variables. In this case a stack frame needs to be allocated while evaluating the global variable- Parameters:
map- The stack frame map for local variables used while evaluating this global variable.
-
isGlobal
public boolean isGlobal()
Is this a global variable?- Specified by:
isGlobalin interfaceBinding- Overrides:
isGlobalin classGeneralVariable- Returns:
- true (yes, it is a global variable)
-
lookForCycles
public void lookForCycles(java.util.Stack referees) throws StaticErrorCheck for cycles in this variable definition- Parameters:
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.- Throws:
StaticError
-
processLeavingTail
public TailCall processLeavingTail(XPathContext context) throws XPathException
Process the variable declaration- Specified by:
processLeavingTailin interfaceTailCallReturner- Specified by:
processLeavingTailin classInstruction- Parameters:
context- The dynamic context of the transformation, giving access to the current node, the current variables, etc.- Returns:
- null if the instruction has completed execution; or a TailCall indicating a function call or template call that is delegated to the caller, to be made after the stack has been unwound so as to save stack space.
- Throws:
XPathException
-
getSelectValue
public ValueRepresentation getSelectValue(XPathContext context) throws XPathException
Evaluate the variable. That is, get the value of the select expression if present or the content of the element otherwise, either as a tree or as a sequence- Overrides:
getSelectValuein classGeneralVariable- Throws:
XPathException
-
evaluateVariable
public ValueRepresentation evaluateVariable(XPathContext context) throws XPathException
Evaluate the variable- Throws:
XPathException
-
getInstructionInfo
public InstructionInfo getInstructionInfo()
Get InstructionInfo for this expression- Specified by:
getInstructionInfoin interfaceInstructionInfoProvider- Overrides:
getInstructionInfoin classInstruction
-
-