Class ElemVariable

All Implemented Interfaces:
Serializable, SourceLocator, XSLTVisitable, PrefixResolver, ExpressionNode, WhitespaceStrippingElementMatcher, Document, Element, Node, NodeList
Direct Known Subclasses:
ElemExsltFuncResult, ElemParam, ElemVariablePsuedo

public class ElemVariable
extends ElemTemplateElement
Implement xsl:variable.
 
 
 
See Also:
variables in XSLT Specification, Serialized Form
  • Field Details

    • m_index

      protected int m_index
      This is the index into the stack frame.
    • m_qname

      protected QName m_qname
      The value of the "name" attribute.
  • Constructor Details

  • Method Details

    • setIndex

      public void setIndex​(int index)
      Sets the relative position of this variable within the stack frame (if local) or the global area (if global). Note that this should be called only for global variables since the local position is computed in the compose() method.
    • getIndex

      public int getIndex()
      If this element is not at the top-level, get the relative position of the variable into the stack frame. If this variable is at the top-level, get the relative position within the global area.
    • setSelect

      public void setSelect​(XPath v)
      Set the "select" attribute. If the variable-binding element has a select attribute, then the value of the attribute must be an expression and the value of the variable is the object that results from evaluating the expression. In this case, the content of the variable must be empty.
      Parameters:
      v - Value to set for the "select" attribute.
    • getSelect

      public XPath getSelect()
      Get the "select" attribute. If the variable-binding element has a select attribute, then the value of the attribute must be an expression and the value of the variable is the object that results from evaluating the expression. In this case, the content of the variable must be empty.
      Returns:
      Value of the "select" attribute.
    • setName

      public void setName​(QName v)
      Set the "name" attribute. Both xsl:variable and xsl:param have a required name attribute, which specifies the name of the variable. The value of the name attribute is a QName, which is expanded as described in [2.4 Qualified Names].
      Parameters:
      v - Value to set for the "name" attribute.
      See Also:
      qname in XSLT Specification
    • getName

      public QName getName()
      Get the "name" attribute. Both xsl:variable and xsl:param have a required name attribute, which specifies the name of the variable. The value of the name attribute is a QName, which is expanded as described in [2.4 Qualified Names].
      Returns:
      Value of the "name" attribute.
      See Also:
      qname in XSLT Specification
    • setIsTopLevel

      public void setIsTopLevel​(boolean v)
      Set if this is a top-level variable or param, or not.
      Parameters:
      v - Boolean indicating whether this is a top-level variable or param, or not.
      See Also:
      top-level-variables in XSLT Specification
    • getIsTopLevel

      public boolean getIsTopLevel()
      Get if this is a top-level variable or param, or not.
      Returns:
      Boolean indicating whether this is a top-level variable or param, or not.
      See Also:
      top-level-variables in XSLT Specification
    • getXSLToken

      public int getXSLToken()
      Get an integer representation of the element type.
      Overrides:
      getXSLToken in class ElemTemplateElement
      Returns:
      An integer representation of the element, defined in the Constants class.
      See Also:
      Constants
    • getNodeName

      public String getNodeName()
      Return the node name.
      Specified by:
      getNodeName in interface Node
      Overrides:
      getNodeName in class ElemTemplateElement
      Returns:
      The node name
    • execute

      public void execute​(TransformerImpl transformer) throws TransformerException
      Execute a variable declaration and push it onto the variable stack.
      Overrides:
      execute in class ElemTemplateElement
      Parameters:
      transformer - non-null reference to the the current transform-time state.
      Throws:
      TransformerException
      See Also:
      variables in XSLT Specification
    • getValue

      public XObject getValue​(TransformerImpl transformer, int sourceNode) throws TransformerException
      Get the XObject representation of the variable.
      Parameters:
      transformer - non-null reference to the the current transform-time state.
      sourceNode - non-null reference to the current source node.
      Returns:
      the XObject representation of the variable.
      Throws:
      TransformerException
    • compose

      public void compose​(StylesheetRoot sroot) throws TransformerException
      This function is called after everything else has been recomposed, and allows the template to set remaining values that may be based on some other property that depends on recomposition.
      Overrides:
      compose in class ElemTemplateElement
      Throws:
      TransformerException
    • endCompose

      public void endCompose​(StylesheetRoot sroot) throws TransformerException
      This after the template's children have been composed. We have to get the count of how many variables have been declared, so we can do a link and unlink.
      Overrides:
      endCompose in class ElemTemplateElement
      Throws:
      TransformerException
    • recompose

      public void recompose​(StylesheetRoot root)
      This function is called during recomposition to control how this element is composed.
      Overrides:
      recompose in class ElemTemplateElement
      Parameters:
      root - The root stylesheet for this transformation.
    • setParentElem

      public void setParentElem​(ElemTemplateElement p)
      Set the parent as an ElemTemplateElement.
      Overrides:
      setParentElem in class ElemTemplateElement
      Parameters:
      p - This node's parent as an ElemTemplateElement
    • accept

      protected boolean accept​(XSLTVisitor visitor)
      Accept a visitor and call the appropriate method for this class.
      Overrides:
      accept in class ElemTemplateElement
      Parameters:
      visitor - The visitor whose appropriate method will be called.
      Returns:
      true if the children of the object should be visited.
    • callChildVisitors

      protected void callChildVisitors​(XSLTVisitor visitor, boolean callAttrs)
      Call the children visitors.
      Overrides:
      callChildVisitors in class ElemTemplateElement
      Parameters:
      visitor - The visitor whose appropriate method will be called.
    • isPsuedoVar

      public boolean isPsuedoVar()
      Tell if this is a psuedo variable reference, declared by Xalan instead of by the user.
    • appendChild

      public ElemTemplateElement appendChild​(ElemTemplateElement elem)
      Add a child to the child list. If the select attribute is present, an error will be raised.
      Overrides:
      appendChild in class ElemTemplateElement
      Parameters:
      elem - New element to append to this element's children list
      Returns:
      null if the select attribute was present, otherwise the child just added to the child list