org.apache.xalan.templates
Class ElemCallTemplate

java.lang.Object
  extended byorg.apache.xml.utils.UnImplNode
      extended byorg.apache.xalan.templates.ElemTemplateElement
          extended byorg.apache.xalan.templates.ElemForEach
              extended byorg.apache.xalan.templates.ElemCallTemplate
All Implemented Interfaces:
org.w3c.dom.Document, org.w3c.dom.Element, ExpressionNode, ExpressionOwner, org.w3c.dom.Node, org.w3c.dom.NodeList, PrefixResolver, Serializable, javax.xml.transform.SourceLocator, WhitespaceStrippingElementMatcher, XSLTVisitable
Direct Known Subclasses:
ElemApplyTemplates

public class ElemCallTemplate
extends ElemForEach

Implement xsl:call-template.

 &!ELEMENT xsl:call-template (xsl:with-param)*>
 &!ATTLIST xsl:call-template
   name %qname; #REQUIRED
 &
 

See Also:
named-templates in XSLT Specification, Serialized Form

Field Summary
protected  ElemWithParam[] m_paramElems
          Vector of xsl:param elements associated with this element.
private  ElemTemplate m_template
          The template which is named by QName.
 QName m_templateName
          An xsl:call-template element invokes a template by name; it has a required name attribute that identifies the template to be invoked.
 
Fields inherited from class org.apache.xalan.templates.ElemForEach
DEBUG, m_doc_cache_off, m_selectExpression, m_sortElems
 
Fields inherited from class org.apache.xalan.templates.ElemTemplateElement
m_docOrderNumber, m_firstChild, m_hasVariableDecl, m_nextSibling, m_parentNode, m_prefixTable
 
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
ElemCallTemplate()
           
 
Method Summary
 ElemTemplateElement appendChild(ElemTemplateElement newChild)
          Add a child to the child list
 void callChildVisitors(XSLTVisitor visitor, boolean callAttrs)
          Call the children visitors.
 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)
          Invoke a named template.
 QName getName()
          Get the "name" attribute.
 String getNodeName()
          Return the node name.
 ElemWithParam getParamElem(int i)
          Get a xsl:param element associated with this element.
 int getParamElemCount()
          Get the count xsl:param elements associated with this element.
 int getXSLToken()
          Get an int constant identifying the type of element.
 void setName(QName name)
          Set the "name" attribute.
 void setParamElem(ElemWithParam ParamElem)
          Set a xsl:param element associated with this element.
 
Methods inherited from class org.apache.xalan.templates.ElemForEach
getExpression, getSelect, getSortElem, getSortElemCount, getTemplateMatch, setExpression, setSelect, setSortElem, sortNodes, transformSelectedNodes
 
Methods inherited from class org.apache.xalan.templates.ElemTemplateElement
accept, addOrReplaceDecls, appendChild, callChildVisitors, callVisitors, canAcceptVariables, canStripWhiteSpace, compareTo, containsExcludeResultPrefix, error, error, executeNSDecls, executeNSDecls, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getBaseIdentifier, getChildNodes, getColumnNumber, getDeclaredPrefixes, getDOMBackPointer, getFirstChild, getFirstChildElem, getLastChild, getLastChildElem, getLength, getLineNumber, getLocalName, getNamespaceForPrefix, getNamespaceForPrefix, getNextSibling, getNextSiblingElem, getNodeType, getOwnerDocument, getOwnerXSLTemplate, getParentElem, getParentNode, getParentNodeElem, getPrefixes, getPreviousSibling, getPreviousSiblingElem, getPublicId, getStylesheet, getStylesheetComposed, getStylesheetRoot, getSystemId, getTagName, getUid, getXmlSpace, handlesNullPrefixes, hasChildNodes, hasTextLitOnly, hasVariableDecl, insertBefore, isCompiledTemplate, isValidNCName, item, needToCheckExclude, recompose, removeChild, replaceChild, replaceChild, resolvePrefixTables, runtimeInit, setDOMBackPointer, setLocaterInfo, setParentElem, setPrefixes, setPrefixes, setUid, setXmlSpace, shouldStripWhiteSpace, unexecuteNSDecls, unexecuteNSDecls
 
Methods inherited from class org.apache.xml.utils.UnImplNode
adoptNode, appendData, cloneNode, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getEncoding, getImplementation, getNamespaceURI, getNodeValue, getOwnerElement, getPrefix, getSpecified, getStandalone, getStrictErrorChecking, getVersion, hasAttribute, hasAttributeNS, hasAttributes, importNode, insertData, isSupported, normalize, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, replaceData, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setEncoding, setNodeValue, setPrefix, setStandalone, setStrictErrorChecking, setValue, setVersion, splitText, substringData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_templateName

public QName m_templateName
An xsl:call-template element invokes a template by name; it has a required name attribute that identifies the template to be invoked.


m_template

private ElemTemplate m_template
The template which is named by QName.


m_paramElems

protected ElemWithParam[] m_paramElems
Vector of xsl:param elements associated with this element.

Constructor Detail

ElemCallTemplate

public ElemCallTemplate()
Method Detail

setName

public void setName(QName name)
Set the "name" attribute. An xsl:call-template element invokes a template by name; it has a required name attribute that identifies the template to be invoked.

Parameters:
name - Name attribute to set

getName

public QName getName()
Get the "name" attribute. An xsl:call-template element invokes a template by name; it has a required name attribute that identifies the template to be invoked.

Returns:
Name attribute of this element

getXSLToken

public int getXSLToken()
Get an int constant identifying the type of element.

Overrides:
getXSLToken in class ElemForEach
Returns:
The token ID for this element
See Also:
Constants

getNodeName

public String getNodeName()
Return the node name.

Specified by:
getNodeName in interface org.w3c.dom.Node
Overrides:
getNodeName in class ElemForEach
Returns:
The name of this element

compose

public void compose(StylesheetRoot sroot)
             throws javax.xml.transform.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 ElemForEach
Throws:
javax.xml.transform.TransformerException

endCompose

public void endCompose(StylesheetRoot sroot)
                throws javax.xml.transform.TransformerException
This after the template's children have been composed.

Overrides:
endCompose in class ElemForEach
Throws:
javax.xml.transform.TransformerException

execute

public void execute(TransformerImpl transformer)
             throws javax.xml.transform.TransformerException
Invoke a named template.

Overrides:
execute in class ElemForEach
Parameters:
transformer - non-null reference to the the current transform-time state.
Throws:
javax.xml.transform.TransformerException
See Also:
named-templates in XSLT Specification

getParamElemCount

public int getParamElemCount()
Get the count xsl:param elements associated with this element.

Returns:
The number of xsl:param elements.

getParamElem

public ElemWithParam getParamElem(int i)
Get a xsl:param element associated with this element.

Parameters:
i - Index of element to find
Returns:
xsl:param element at given index

setParamElem

public void setParamElem(ElemWithParam ParamElem)
Set a xsl:param element associated with this element.

Parameters:
ParamElem - xsl:param element to set.

appendChild

public ElemTemplateElement appendChild(ElemTemplateElement newChild)
Add a child to the child list.

Overrides:
appendChild in class ElemForEach
Parameters:
newChild - Child to add to this node's children list
Returns:
The child that was just added the children list
Throws:
DOMException

callChildVisitors

public void callChildVisitors(XSLTVisitor visitor,
                              boolean callAttrs)
Call the children visitors.

Overrides:
callChildVisitors in class ElemForEach
Parameters:
visitor - The visitor whose appropriate method will be called.