net.sf.saxon.style

Class XSLVariableDeclaration

Implemented Interfaces:
Locator, Container, Locator, Serializable, Source, SourceLocator, FingerprintedNode, InstructionInfo, Item, LocationProvider, NamespaceResolver, NodeInfo, PullEvent, SaxonLocator, StylesheetProcedure, ValueRepresentation, VariableDeclaration
Known Direct Subclasses:
XSLParam, XSLVariable

public abstract class XSLVariableDeclaration
extends XSLGeneralVariable
implements VariableDeclaration, StylesheetProcedure

Generic class for xsl:variable and xsl:param elements.

Field Summary

protected List
references

Fields inherited from class net.sf.saxon.style.XSLGeneralVariable

assignable, constantText, global, implicitlyRequiredParam, redundant, requiredParam, requiredType, select, slotManager, tunnel

Fields inherited from class net.sf.saxon.style.StyleElement

REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FALLBACK_AVAILABLE, REPORT_UNLESS_FORWARDS_COMPATIBLE, defaultCollationName, defaultXPathNamespace, extensionNamespaces, reportingCircumstances, staticContext, validationError, version

Fields inherited from class net.sf.saxon.tree.ElementWithAttributes

attributeList, namespaceList

Fields inherited from class net.sf.saxon.tree.ElementImpl

nameCode, root

Fields inherited from class net.sf.saxon.tree.ParentNodeImpl

sequence

Fields inherited from class net.sf.saxon.tree.NodeImpl

NODE_LETTER, index, parent

Fields inherited from interface net.sf.saxon.om.NodeInfo

ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES

Fields inherited from interface net.sf.saxon.om.ValueRepresentation

EMPTY_VALUE_ARRAY

Method Summary

protected void
fixupBinding(Binding binding)
Notify all variable references of the Binding instruction
void
fixupReferences()
Notify all references to this variable of the data type
abstract SequenceType
getRequiredType()
Get the static type of the variable.
SlotManager
getSlotManager()
Get the SlotManager associated with this stylesheet construct.
int
getSlotNumber()
Get the slot number allocated to this variable (its position in the stackframe)
boolean
isInstruction()
Determine whether this node is an instruction.
void
registerReference(BindingReference ref)
Method called by VariableReference to register the variable reference for subsequent fixup
protected void
setReferenceCount(GeneralVariable var)
Set the number of references to this variable.
void
setSlotNumber(int slot)
Allocate a slot number to this variable
void
validate()
Check that the variable is not already declared, and allocate a slot number

Methods inherited from class net.sf.saxon.style.XSLGeneralVariable

allowsAsAttribute, allowsRequired, allowsTunnelAttribute, allowsValue, checkAgainstRequiredType, getConstructType, getReturnedItemType, getVariableDisplayName, getVariableQName, initializeInstruction, isAssignable, isGlobal, isRequiredParam, isTunnelParam, mayContainSequenceConstructor, prepareAttributes, setRedundant, setReferenceCount, validate

Methods inherited from class net.sf.saxon.style.StyleElement

allocateLocationId, allocatePatternSlots, allocateSlots, backwardsCompatibleModeIsEnabled, bindVariable, checkEmpty, checkSortComesFirst, checkTopLevel, checkUnknownAttribute, checkWithinTemplate, compile, compileError, compileError, compileError, compileSequenceConstructor, compileWarning, definesExcludedNamespace, definesExtensionElement, fallbackProcessing, fixupReferences, forwardsCompatibleModeIsEnabled, getAllStylesheetFunctions, getAttributeSets, getAttributeValue, getCommonChildItemType, getConstructType, getContainingSlotManager, getContainingStylesheet, getDefaultCollationName, getDefaultXPathNamespace, getExecutable, getHostLanguage, getLastChildInstruction, getLineNumber, getLineNumber, getLocationProvider, getNamespaceResolver, getObjectName, getObjectName, getPrecedence, getPreparedStylesheet, getPrincipalStylesheet, getProperties, getProperty, getReturnedItemType, getSchemaType, getStaticContext, getStylesheetFunction, getSystemId, getTypeAnnotation, getVersion, getWithParamInstructions, isExcludedNamespace, isExplaining, isExtensionNamespace, isInstruction, isPermittedChild, isTopLevel, issueWarning, issueWarning, makeAttributeValueTemplate, makeExpression, makeExpressionVisitor, makeNamespaceContext, makePattern, makeQName, makeSequenceType, makeSortKeys, makeTraceInstruction, markTailCalls, mayContainFallback, mayContainSequenceConstructor, postValidate, prepareAttributes, processAllAttributes, processAttributes, processDefaultCollationAttribute, processDefaultXPathNamespaceAttribute, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, replaceSubExpression, reportAbsence, setLineNumber, setObjectName, setValidationError, substituteFor, typeCheck, typeCheck, undeclaredNamespaceError, validate, validateChildren, validateSubtree

Methods inherited from class net.sf.saxon.tree.ElementWithAttributes

copy, getAttributeList, getAttributeValue, getDeclaredNamespaces, getInScopeNamespaceCodes, getPrefixForURI, getURICodeForPrefix, getURIForPrefix, initialise, iteratePrefixes, setNamespaceDeclarations

Methods inherited from class net.sf.saxon.tree.ElementImpl

copy, generateId, getAttributeList, getBaseURI, getDeclaredNamespaces, getDocumentRoot, getLineNumber, getNameCode, getNodeKind, getRoot, getSystemId, initialise, setLineNumber, setNameCode, setSystemId

Methods inherited from class net.sf.saxon.tree.ParentNodeImpl

addChild, compact, enumerateChildren, getFirstChild, getLastChild, getNthChild, getSequenceNumber, getStringValue, getStringValueCS, hasChildNodes, useChildrenArray

Methods inherited from class net.sf.saxon.tree.NodeImpl

atomize, compareOrder, equals, generateId, getAttributeValue, getBaseURI, getColumnNumber, getConfiguration, getDeclaredNamespaces, getDisplayName, getDocumentNumber, getDocumentRoot, getFingerprint, getFirstChild, getLastChild, getLineNumber, getLocalPart, getNameCode, getNamePool, getNextInDocument, getNextSibling, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getRoot, getSequenceNumber, getStringValueCS, getSystemId, getTypeAnnotation, getTypedValue, getURI, hasChildNodes, hashCode, isSameNodeInfo, iterateAxis, iterateAxis, setSystemId

Field Details

references

protected List references

Method Details

fixupBinding

protected void fixupBinding(Binding binding)
Notify all variable references of the Binding instruction
Parameters:
binding - the Binding that represents this variable declaration in the executable code tree

fixupReferences

public void fixupReferences()
            throws XPathException
Notify all references to this variable of the data type
Overrides:
fixupReferences in interface StyleElement

getRequiredType

public abstract SequenceType getRequiredType()
Get the static type of the variable.
Returns:
the static type declared for the variable

getSlotManager

public SlotManager getSlotManager()
Get the SlotManager associated with this stylesheet construct. The SlotManager contains the information needed to manage the local stack frames used by run-time instances of the code.
Specified by:
getSlotManager in interface StylesheetProcedure
Returns:
the associated SlotManager object

getSlotNumber

public int getSlotNumber()
Get the slot number allocated to this variable (its position in the stackframe)
Returns:
the allocated slot number

isInstruction

public boolean isInstruction()
Determine whether this node is an instruction.
Overrides:
isInstruction in interface StyleElement
Returns:
true - it is an instruction (well, it can be, anyway)

registerReference

public void registerReference(BindingReference ref)
Method called by VariableReference to register the variable reference for subsequent fixup
Specified by:
registerReference in interface VariableDeclaration

setReferenceCount

protected void setReferenceCount(GeneralVariable var)
Set the number of references to this variable. This code is invoked only for a global variable, and only if there is at least one reference.
Overrides:
setReferenceCount in interface XSLGeneralVariable
Parameters:
var - the variable

setSlotNumber

public void setSlotNumber(int slot)
Allocate a slot number to this variable
Parameters:
slot - the position of the variable on the local stack frame

validate

public void validate()
            throws XPathException
Check that the variable is not already declared, and allocate a slot number
Overrides:
validate in interface XSLGeneralVariable