net.sf.saxon.style
Class XSLVariableDeclaration
java.lang.Object
net.sf.saxon.tree.NodeImpl
net.sf.saxon.tree.ParentNodeImpl
net.sf.saxon.tree.ElementImpl
net.sf.saxon.tree.ElementWithAttributes
net.sf.saxon.style.StyleElement
net.sf.saxon.style.XSLGeneralVariable
net.sf.saxon.style.XSLVariableDeclaration
- All Implemented Interfaces:
- Serializable, Source, SourceLocator, LocationProvider, SaxonLocator, PullEvent, Container, VariableDeclaration, FingerprintedNode, Item, NamespaceResolver, NodeInfo, ValueRepresentation, StylesheetProcedure, InstructionInfo, Locator
- Direct Known Subclasses:
- XSLParam, XSLVariable
public abstract class XSLVariableDeclaration
- extends XSLGeneralVariable
- implements VariableDeclaration, StylesheetProcedure
Generic class for xsl:variable and xsl:param elements.
- See Also:
- Serialized Form
Fields inherited from class net.sf.saxon.style.StyleElement |
defaultCollationName, defaultXPathNamespace, extensionNamespaces, REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FALLBACK_AVAILABLE, REPORT_UNLESS_FORWARDS_COMPATIBLE, reportingCircumstances, staticContext, validationError, version |
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 |
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, forwardsCompatibleModeIsEnabled, getAllStylesheetFunctions, getAttributeSets, getAttributeValue, getCommonChildItemType, getContainingSlotManager, getContainingStylesheet, getDefaultCollationName, getDefaultXPathNamespace, getExecutable, getHostLanguage, getLastChildInstruction, getLineNumber, getLineNumber, getLocationProvider, getNamespaceResolver, getObjectName, getObjectName, getPrecedence, getPreparedStylesheet, getPrincipalStylesheet, getProperties, getProperty, getSchemaType, getStaticContext, getStylesheetFunction, getSystemId, getTypeAnnotation, getVersion, getWithParamInstructions, isExcludedNamespace, isExplaining, isExtensionNamespace, isPermittedChild, issueWarning, issueWarning, isTopLevel, makeAttributeValueTemplate, makeExpression, makeExpressionVisitor, makeNamespaceContext, makePattern, makeQName, makeSequenceType, makeSortKeys, makeTraceInstruction, markTailCalls, mayContainFallback, postValidate, processAllAttributes, processAttributes, processDefaultCollationAttribute, processDefaultXPathNamespaceAttribute, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, replaceSubExpression, reportAbsence, setLineNumber, setObjectName, setValidationError, substituteFor, typeCheck, typeCheck, undeclaredNamespaceError, 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.ParentNodeImpl |
addChild, compact, enumerateChildren, getFirstChild, getLastChild, getNthChild, getSequenceNumber, getStringValue, getStringValueCS, hasChildNodes, useChildrenArray |
Methods inherited from class net.sf.saxon.tree.NodeImpl |
atomize, compareOrder, equals, getColumnNumber, getConfiguration, getDisplayName, getDocumentNumber, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getTypeAnnotation, getTypedValue, getURI, hashCode, isSameNodeInfo, iterateAxis, iterateAxis |
references
protected List references
XSLVariableDeclaration
public XSLVariableDeclaration()
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
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
getRequiredType
public abstract SequenceType getRequiredType()
- Get the static type of the variable.
- Returns:
- the static type declared for the variable
registerReference
public void registerReference(BindingReference ref)
- Method called by VariableReference to register the variable reference for
subsequent fixup
- Specified by:
registerReference
in interface VariableDeclaration
- Parameters:
ref
- the variable reference
isInstruction
public boolean isInstruction()
- Determine whether this node is an instruction.
- Overrides:
isInstruction
in class StyleElement
- Returns:
- true - it is an instruction (well, it can be, anyway)
fixupReferences
public void fixupReferences()
throws XPathException
- Notify all references to this variable of the data type
- Overrides:
fixupReferences
in class StyleElement
- Throws:
XPathException
validate
public void validate()
throws XPathException
- Check that the variable is not already declared, and allocate a slot number
- Overrides:
validate
in class XSLGeneralVariable
- Throws:
XPathException
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
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 class XSLGeneralVariable
- Parameters:
var
- the variable