org.apache.xalan.templates

Class ElemVariable

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

public class ElemVariable
extends ElemTemplateElement

Implement xsl:variable.
 <!ELEMENT xsl:variable %template;>
 <!ATTLIST xsl:variable
   name %qname; #REQUIRED
   select %expr; #IMPLIED
 >
 

See Also:
variables in XSLT Specification

Nested Class Summary

Fields inherited from interface org.w3c.dom.Node

ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE

Constructor Summary

ElemVariable()
Constructor ElemVariable
ElemVariable(ElemVariable param)
Copy constructor.

Method Summary

ElemTemplateElement
appendChild(ElemTemplateElement elem)
Add a child to the child list.
void
compose(StylesheetRoot sroot)
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.
void
endCompose(StylesheetRoot sroot)
This after the template's children have been composed.
void
execute(TransformerImpl transformer)
Execute a variable declaration and push it onto the variable stack.
int
getIndex()
If this element is not at the top-level, get the relative position of the variable into the stack frame.
boolean
getIsTopLevel()
Get if this is a top-level variable or param, or not.
QName
getName()
Get the "name" attribute.
String
getNodeName()
Return the node name.
XPath
getSelect()
Get the "select" attribute.
XObject
getValue(TransformerImpl transformer, int sourceNode)
Get the XObject representation of the variable.
int
getXSLToken()
Get an integer representation of the element type.
boolean
isPsuedoVar()
Tell if this is a psuedo variable reference, declared by Xalan instead of by the user.
void
recompose(StylesheetRoot root)
This function is called during recomposition to control how this element is composed.
void
setIndex(int index)
Sets the relative position of this variable within the stack frame (if local) or the global area (if global).
void
setIsTopLevel(boolean v)
Set if this is a top-level variable or param, or not.
void
setName(QName v)
Set the "name" attribute.
void
setParentElem(ElemTemplateElement p)
Set the parent as an ElemTemplateElement.
void
setSelect(XPath v)
Set the "select" attribute.

Methods inherited from class org.apache.xalan.templates.ElemTemplateElement

appendChild, appendChild, callVisitors, canAcceptVariables, canStripWhiteSpace, compareTo, compose, containsExcludeResultPrefix, endCompose, error, error, execute, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getBaseIdentifier, getChildNodes, getColumnNumber, getDOMBackPointer, getDeclaredPrefixes, getEndColumnNumber, getEndLineNumber, getFirstChild, getFirstChildElem, getLastChild, getLastChildElem, getLength, getLineNumber, getLocalName, getNamespaceForPrefix, getNamespaceForPrefix, getNextSibling, getNextSiblingElem, getNodeName, getNodeType, getOwnerDocument, getOwnerXSLTemplate, getParentElem, getParentNode, getParentNodeElem, getPrefixes, getPreviousSibling, getPreviousSiblingElem, getPublicId, getStylesheet, getStylesheetComposed, getStylesheetRoot, getSystemId, getTagName, getUid, getXSLToken, getXmlSpace, handlesNullPrefixes, hasChildNodes, hasTextLitOnly, hasVariableDecl, insertBefore, isCompiledTemplate, item, recompose, removeChild, replaceChild, replaceChild, resolvePrefixTables, runtimeInit, setDOMBackPointer, setEndLocaterInfo, setLocaterInfo, setParentElem, setPrefixes, setPrefixes, setUid, setXmlSpace, shouldStripWhiteSpace

Methods inherited from class org.apache.xml.utils.UnImplNode

adoptNode, appendChild, appendData, cloneNode, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, error, error, getAttribute, getAttributeNS, getAttributeNode, getAttributeNodeNS, getAttributes, getChildNodes, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getEncoding, getFirstChild, getImplementation, getLastChild, getLength, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getOwnerElement, getParentNode, getPrefix, getPreviousSibling, getSpecified, getStandalone, getStrictErrorChecking, getTagName, getVersion, hasAttribute, hasAttributeNS, hasAttributes, hasChildNodes, importNode, insertBefore, insertData, isSupported, item, normalize, removeAttribute, removeAttributeNS, removeAttributeNode, removeChild, replaceChild, replaceData, setAttribute, setAttributeNS, setAttributeNode, setAttributeNodeNS, setData, setEncoding, setNodeValue, setPrefix, setStandalone, setStrictErrorChecking, setValue, setVersion, splitText, substringData

Constructor Details

ElemVariable

public ElemVariable()
Constructor ElemVariable


ElemVariable

public ElemVariable(ElemVariable param)
            throws TransformerException
Copy constructor.

Parameters:
param - An element created from an xsl:variable

Throws:
TransformerException -

Method Details

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


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 interface ElemTemplateElement


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 interface ElemTemplateElement


execute

public void execute(TransformerImpl transformer)
            throws TransformerException
Execute a variable declaration and push it onto the variable stack.
Overrides:
execute in interface ElemTemplateElement

Parameters:
transformer - non-null reference to the the current transform-time state.

Throws:
TransformerException -

See Also:
variables in XSLT Specification


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.


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


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


getNodeName

public String getNodeName()
Return the node name.
Specified by:
getNodeName in interface Node
Overrides:
getNodeName in interface ElemTemplateElement

Returns:
The node name


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.


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 -


getXSLToken

public int getXSLToken()
Get an integer representation of the element type.
Overrides:
getXSLToken in interface ElemTemplateElement

Returns:
An integer representation of the element, defined in the Constants class.

See Also:
Constants


isPsuedoVar

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


recompose

public void recompose(StylesheetRoot root)
This function is called during recomposition to control how this element is composed.
Overrides:
recompose in interface ElemTemplateElement

Parameters:
root - The root stylesheet for this transformation.


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.


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


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


setParentElem

public void setParentElem(ElemTemplateElement p)
Set the parent as an ElemTemplateElement.
Overrides:
setParentElem in interface ElemTemplateElement

Parameters:


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.


Copyright B) 2004 Apache XML Project. All Rights Reserved.