Class XSLGeneralVariable

All Implemented Interfaces:
Serializable, Source, SourceLocator, LocationProvider, SaxonLocator, PullEvent, Container, FingerprintedNode, Item<NodeInfo>, MutableNodeInfo, NamespaceResolver, NodeInfo, ValueRepresentation<NodeInfo>, InstructionInfo, SiblingCountingNode, Locator
Direct Known Subclasses:
XSLVariableDeclaration, XSLWithParam

public abstract class XSLGeneralVariable extends StyleElement
This class defines common behaviour across xsl:variable, xsl:param, and xsl:with-param
See Also:
  • Field Details

    • select

      protected Expression select
    • requiredType

      protected SequenceType requiredType
    • constantText

      protected String constantText
    • global

      protected boolean global
    • slotManager

      protected SlotManager slotManager
    • assignable

      protected boolean assignable
    • redundant

      protected boolean redundant
    • requiredParam

      protected boolean requiredParam
    • implicitlyRequiredParam

      protected boolean implicitlyRequiredParam
    • tunnel

      protected boolean tunnel
    • compiledVariable

      protected GeneralVariable compiledVariable
  • Constructor Details

    • XSLGeneralVariable

      public XSLGeneralVariable()
  • Method Details

    • getReturnedItemType

      protected ItemType getReturnedItemType()
      Determine the type of item returned by this instruction (only relevant if it is an instruction).
      Overrides:
      getReturnedItemType in class StyleElement
      Returns:
      the item type returned. This is null for a variable: we are not interested in the type of the variable, but in what the xsl:variable constributes to the result of the sequence constructor it is part of.
    • mayContainSequenceConstructor

      public boolean mayContainSequenceConstructor()
      Determine whether this type of element is allowed to contain a template-body
      Overrides:
      mayContainSequenceConstructor in class StyleElement
      Returns:
      true: yes, it may contain a template-body
    • allowsAsAttribute

      protected boolean allowsAsAttribute()
    • allowsTunnelAttribute

      protected boolean allowsTunnelAttribute()
    • allowsValue

      protected boolean allowsValue()
    • allowsRequired

      protected boolean allowsRequired()
    • isAssignable

      public boolean isAssignable()
      Test whether it is permitted to assign to the variable using the saxon:assign extension element.
      Returns:
      true if the extra attribute saxon:assignable="yes" is present.
    • isTunnelParam

      public boolean isTunnelParam()
      Test whether this is a tunnel parameter (tunnel="yes")
      Returns:
      true if this is a tunnel parameter
    • isRequiredParam

      public boolean isRequiredParam()
      Test whether this is a required parameter (required="yes")
      Returns:
      true if this is a required parameter
    • isGlobal

      public boolean isGlobal()
      Test whether this is a global variable or parameter
      Returns:
      true if this is global
    • getVariableDisplayName

      public String getVariableDisplayName()
      Get the display name of the variable.
      Returns:
      the lexical QName
    • setRedundant

      public void setRedundant()
      Mark this global variable as redundant. This is done before prepareAttributes is called.
    • getVariableQName

      public StructuredQName getVariableQName()
      Get the QName of the variable
      Returns:
      the name as a structured QName, or a dummy name if the variable has no name attribute or has an invalid name attribute
    • prepareAttributes

      public void prepareAttributes() throws XPathException
      Description copied from class: StyleElement
      Set the attribute list for the element. This is called to process the attributes (note the distinction from processAttributes in the superclass). Must be supplied in a subclass
      Specified by:
      prepareAttributes in class StyleElement
      Throws:
      XPathException - if a static error is detected
    • validate

      public void validate(Declaration decl) throws XPathException
      Description copied from class: StyleElement
      Check that the stylesheet element is valid. This is called once for each element, after the entire tree has been built. As well as validation, it can perform first-time initialisation. The default implementation does nothing; it is normally overriden in subclasses.
      Overrides:
      validate in class StyleElement
      Parameters:
      decl - the declaration to be validated
      Throws:
      XPathException - if any error is found during validation
    • postValidate

      public void postValidate() throws XPathException
      Hook to allow additional validation of a parent element immediately after its children have been validated.
      Overrides:
      postValidate in class StyleElement
      Throws:
      XPathException - if any error is found during post-traversal validation
    • checkAgainstRequiredType

      public void checkAgainstRequiredType(SequenceType required) throws XPathException
      Check the supplied select expression against the required type.
      Parameters:
      required - The type required by the variable declaration, or in the case of xsl:with-param, the signature of the called template
      Throws:
      XPathException - if an error is detected
    • initializeBinding

      protected void initializeBinding(Executable exec, Declaration decl, GeneralVariable var) throws XPathException
      Initialize - common code called from the compile() method of all subclasses
      Parameters:
      exec - the executable
      decl - this xsl:variable declaration
      var - the representation of the variable declaration in the compiled executable
      Throws:
      XPathException - if an error is detected
    • setReferenceCount

      protected void setReferenceCount(GeneralVariable var)
    • getConstructType

      public int getConstructType()
      Get the type of construct. This will be a constant in class Location. This method is part of the InstructionInfo interface
      Specified by:
      getConstructType in interface InstructionInfo
      Overrides:
      getConstructType in class StyleElement
      Returns:
      an integer identifying the kind of construct