## 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:
  Container, FingerprintedNode, InstructionInfo, Item, LocationProvider, org.xml.sax.Locator, NodeInfo, SaxonLocator, javax.xml.transform.Source, javax.xml.transform.SourceLocator, StylesheetProcedure, ValueRepresentation, VariableDeclaration

Direct Known Subclasses:
  XSLParam, XSLVariable

public abstract class XSLVariableDeclaration
extends XSLGeneralVariable
implements VariableDeclaration, StylesheetProcedure

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

Field Summary
`protected java.util.List` `references`

Fields inherited from class net.sf.saxon.style.XSLGeneralVariable
`assignable, constantText, global, redundant, requiredParam, requiredType, select, slotManager, tunnel`

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`

Fields inherited from class net.sf.saxon.tree.ElementWithAttributes
`attributeList, namespaceList`

Fields inherited from class net.sf.saxon.tree.ElementImpl
`nameCode, root, sequence`

Fields inherited from class net.sf.saxon.tree.NodeImpl
`index, NODE_LETTER, parent`

Fields inherited from interface net.sf.saxon.om.NodeInfo
`ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, LOCAL_NAMESPACES, NO_NAMESPACES`

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

Constructor Summary
`XSLVariableDeclaration()`

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
`java.util.List` `getReferenceList()` Get the list of references
`java.util.List` `getReferences()` Get the list of references to this variable or parameter.
`abstract SequenceType` `getRequiredType()` Get the static type of the variable.
`SlotManager` `getSlotManager()` Get the SlotManager associated with this stylesheet construct.
`int` `getSlotNumber()`
`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)`
`void` `setSlotNumber(int slot)`
`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, getVariableFingerprint, getVariableName, initializeInstruction, isAssignable, isGlobal, isRequiredParam, isTunnelParam, mayContainSequenceConstructor, prepareAttributes, setRedundant`

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

`allocateLocationId, allocateSlots, backwardsCompatibleModeIsEnabled, bindVariable, checkEmpty, checkSortComesFirst, checkTopLevel, checkUnknownAttribute, checkWithinTemplate, compile, compileError, compileError, compileError, compileSequenceConstructor, compileWarning, definesExcludedNamespace, definesExtensionElement, fallbackProcessing, forwardsCompatibleModeIsEnabled, getAttributeSets, getAttributeValue, getCommonChildItemType, getContainingSlotManager, getContainingStylesheet, getDefaultCollationName, getDefaultXPathNamespace, getExecutable, getLastChildInstruction, getLineNumber, getLineNumber, getLocationProvider, getNamespaceResolver, getObjectFingerprint, getObjectNameCode, getPrecedence, getPreparedStylesheet, getPrincipalStylesheet, getProperties, getProperty, getSchemaType, getStaticContext, getStylesheetFunction, getSystemId, getTargetNamePool, getTypeAnnotation, getVersion, getWithParamInstructions, isExcludedNamespace, isExplaining, isExtensionNamespace, isPermittedChild, issueWarning, issueWarning, isTopLevel, makeAttributeValueTemplate, makeExpression, makeNameCode, makeNamespaceContext, makePattern, makeSequenceType, makeSortKeys, makeTraceInstruction, markTailCalls, mayContainFallback, postValidate, processAllAttributes, processAttributes, processDefaultCollationAttribute, processDefaultXPathNamespaceAttribute, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, reportAbsence, setLineNumber, setObjectNameCode, 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, sendNamespaceDeclarations, setNamespaceDeclarations`

Methods inherited from class net.sf.saxon.tree.ElementImpl
`addChild, compact, enumerateChildren, generateId, getBaseURI, getDocumentRoot, getFirstChild, getLastChild, getNameCode, getNodeKind, getNthChild, getRoot, getSequenceNumber, getStringValue, getStringValueCS, getSystemId, hasChildNodes, setNameCode, setSystemId, useChildrenArray`

Methods inherited from class net.sf.saxon.tree.NodeImpl
`atomize, compareOrder, getColumnNumber, getConfiguration, getDisplayName, getDocumentNumber, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getTypeAnnotation, getTypedValue, getURI, isSameNodeInfo, iterateAxis, iterateAxis`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface net.sf.saxon.expr.VariableDeclaration
`getNameCode, getVariableName`

Methods inherited from interface org.xml.sax.Locator
`getColumnNumber, getPublicId, getSystemId`

Methods inherited from interface javax.xml.transform.SourceLocator
`getColumnNumber, getPublicId, getSystemId`

Methods inherited from interface net.sf.saxon.trace.InstructionInfo
`getSystemId`

Field Detail

### references

    protected java.util.List references

Constructor Detail

### XSLVariableDeclaration

    public XSLVariableDeclaration()

Method Detail

### 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()

### setSlotNumber

    public void setSlotNumber(int slot)

### getRequiredType

    public abstract SequenceType getRequiredType()

  Get the static type of 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`

### getReferences

    public java.util.List getReferences()

  Get the list of references to this variable or parameter. The items in the list are of class BindingReference.

### 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)

### getReferenceList

    public java.util.List getReferenceList()

  Get the list of references

### 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

### setReferenceCount

    protected void setReferenceCount(GeneralVariable var)

  Overrides:
    `setReferenceCount` in class `XSLGeneralVariable`