Package org.apache.xalan.templates
Class ElemVariable
java.lang.Object
org.apache.xml.utils.UnImplNode
org.apache.xalan.templates.ElemTemplateElement
org.apache.xalan.templates.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 Summary
Fields Modifier and Type Field Description protected intm_indexThis is the index into the stack frame.protected QNamem_qnameThe value of the "name" attribute.Fields inherited from class org.apache.xalan.templates.ElemTemplateElement
m_docOrderNumber, m_hasVariableDecl, m_parentNodeFields inherited from class org.apache.xml.utils.UnImplNode
actualEncoding, fDocumentURIFields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE -
Constructor Summary
Constructors Constructor Description ElemVariable()Constructor ElemVariableElemVariable(ElemVariable param)Copy constructor. -
Method Summary
Modifier and Type Method Description protected booleanaccept(XSLTVisitor visitor)Accept a visitor and call the appropriate method for this class.ElemTemplateElementappendChild(ElemTemplateElement elem)Add a child to the child list.protected voidcallChildVisitors(XSLTVisitor visitor, boolean callAttrs)Call the children visitors.voidcompose(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.voidendCompose(StylesheetRoot sroot)This after the template's children have been composed.voidexecute(TransformerImpl transformer)Execute a variable declaration and push it onto the variable stack.intgetIndex()If this element is not at the top-level, get the relative position of the variable into the stack frame.booleangetIsTopLevel()Get if this is a top-level variable or param, or not.QNamegetName()Get the "name" attribute.StringgetNodeName()Return the node name.XPathgetSelect()Get the "select" attribute.XObjectgetValue(TransformerImpl transformer, int sourceNode)Get the XObject representation of the variable.intgetXSLToken()Get an integer representation of the element type.booleanisPsuedoVar()Tell if this is a psuedo variable reference, declared by Xalan instead of by the user.voidrecompose(StylesheetRoot root)This function is called during recomposition to control how this element is composed.voidsetIndex(int index)Sets the relative position of this variable within the stack frame (if local) or the global area (if global).voidsetIsTopLevel(boolean v)Set if this is a top-level variable or param, or not.voidsetName(QName v)Set the "name" attribute.voidsetParentElem(ElemTemplateElement p)Set the parent as an ElemTemplateElement.voidsetSelect(XPath v)Set the "select" attribute.Methods inherited from class org.apache.xalan.templates.ElemTemplateElement
appendChild, callChildVisitors, callVisitors, canAcceptVariables, canStripWhiteSpace, compareTo, containsExcludeResultPrefix, error, error, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getBaseIdentifier, getChildNodes, getColumnNumber, getDeclaredPrefixes, getDOMBackPointer, getEndColumnNumber, getEndLineNumber, getFirstChild, getFirstChildElem, getLastChild, getLastChildElem, getLength, getLineNumber, getLocalName, getNamespaceForPrefix, getNamespaceForPrefix, getNextSibling, getNextSiblingElem, getNodeType, getOwnerDocument, getOwnerXSLTemplate, getParentElem, getParentNode, getParentNodeElem, getPreviousSibling, getPreviousSiblingElem, getPublicId, getStylesheet, getStylesheetComposed, getStylesheetRoot, getSystemId, getTagName, getUid, getXmlSpace, handlesNullPrefixes, hasChildNodes, hasTextLitOnly, hasVariableDecl, insertBefore, isCompiledTemplate, item, removeChild, replaceChild, replaceChild, resolvePrefixTables, runtimeInit, setDOMBackPointer, setEndLocaterInfo, setLocaterInfo, setPrefixes, setPrefixes, setUid, setXmlSpace, shouldStripWhiteSpaceMethods inherited from class org.apache.xml.utils.UnImplNode
adoptNode, appendData, cloneNode, compareDocumentPosition, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, getActualEncoding, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getBaseURI, getDoctype, getDocumentElement, getDocumentURI, getDomConfig, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getImplementation, getInputEncoding, getNamespaceURI, getNodeValue, getOwnerElement, getPrefix, getSchemaTypeInfo, getSpecified, getStrictErrorChecking, getTextContent, getUserData, getWholeText, getXmlEncoding, getXmlStandalone, getXmlVersion, hasAttribute, hasAttributeNS, hasAttributes, importNode, insertData, isDefaultNamespace, isEqualNode, isId, isSameNode, isSupported, isWhitespaceInElementContent, lookupNamespaceURI, lookupPrefix, normalize, normalizeDocument, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, renameNode, replaceData, replaceWholeText, setActualEncoding, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setDocumentURI, setIdAttribute, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setInputEncoding, setNodeValue, setPrefix, setStrictErrorChecking, setTextContent, setUserData, setValue, setXmlEncoding, setXmlStandalone, setXmlVersion, splitText, substringData
-
Field Details
-
m_index
protected int m_indexThis is the index into the stack frame. -
m_qname
The value of the "name" attribute.
-
-
Constructor Details
-
ElemVariable
public ElemVariable()Constructor ElemVariable -
ElemVariable
Copy constructor.- Parameters:
param- An element created from an xsl:variable- Throws:
TransformerException
-
-
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
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
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
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
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:
getXSLTokenin classElemTemplateElement- Returns:
- An integer representation of the element, defined in the Constants class.
- See Also:
Constants
-
getNodeName
Return the node name.- Specified by:
getNodeNamein interfaceNode- Overrides:
getNodeNamein classElemTemplateElement- Returns:
- The node name
-
execute
Execute a variable declaration and push it onto the variable stack.- Overrides:
executein classElemTemplateElement- Parameters:
transformer- non-null reference to the the current transform-time state.- Throws:
TransformerException- See Also:
- variables in XSLT Specification
-
getValue
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
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:
composein classElemTemplateElement- Throws:
TransformerException
-
endCompose
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:
endComposein classElemTemplateElement- Throws:
TransformerException
-
recompose
This function is called during recomposition to control how this element is composed.- Overrides:
recomposein classElemTemplateElement- Parameters:
root- The root stylesheet for this transformation.
-
setParentElem
Set the parent as an ElemTemplateElement.- Overrides:
setParentElemin classElemTemplateElement- Parameters:
p- This node's parent as an ElemTemplateElement
-
accept
Accept a visitor and call the appropriate method for this class.- Overrides:
acceptin classElemTemplateElement- Parameters:
visitor- The visitor whose appropriate method will be called.- Returns:
- true if the children of the object should be visited.
-
callChildVisitors
Call the children visitors.- Overrides:
callChildVisitorsin classElemTemplateElement- 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
Add a child to the child list. If the select attribute is present, an error will be raised.- Overrides:
appendChildin classElemTemplateElement- 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
-