Package org.apache.xalan.templates
Class ElemForEach
- java.lang.Object
-
- org.apache.xml.utils.UnImplNode
-
- org.apache.xalan.templates.ElemTemplateElement
-
- org.apache.xalan.templates.ElemForEach
-
- All Implemented Interfaces:
java.io.Serializable
,javax.xml.transform.SourceLocator
,XSLTVisitable
,PrefixResolver
,ExpressionNode
,ExpressionOwner
,WhitespaceStrippingElementMatcher
,org.w3c.dom.Document
,org.w3c.dom.Element
,org.w3c.dom.Node
,org.w3c.dom.NodeList
- Direct Known Subclasses:
ElemCallTemplate
public class ElemForEach extends ElemTemplateElement implements ExpressionOwner
Implement xsl:for-each.- See Also:
- for-each in XSLT Specification, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description boolean
m_doc_cache_off
This is set by an "xalan-doc-cache-off" pi, or the old "xalan:doc-cache-off" pi.-
Fields 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 ElemForEach()
Construct a element representing xsl:for-each.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ElemTemplateElement
appendChild(ElemTemplateElement newChild)
Add a child to the child list.void
callChildVisitors(XSLTVisitor visitor, boolean callAttributes)
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)
Execute the xsl:for-each transformationExpression
getExpression()
Get the raw Expression object that this class wraps.java.lang.String
getNodeName()
Return the node name.Expression
getSelect()
Get the "select" attribute.ElemSort
getSortElem(int i)
Get a xsl:sort element associated with this element.int
getSortElemCount()
Get the count xsl:sort elements associated with this element.int
getXSLToken()
Get an int constant identifying the type of element.void
setExpression(Expression exp)
Set the raw expression object for this object.void
setSelect(XPath xpath)
Set the "select" attribute.void
setSortElem(ElemSort sortElem)
Set a xsl:sort element associated with this element.DTMIterator
sortNodes(XPathContext xctxt, java.util.Vector keys, DTMIterator sourceNodes)
Sort given nodesvoid
transformSelectedNodes(TransformerImpl transformer)
Perform a query if needed, and call transformNode for each child.-
Methods inherited from class org.apache.xalan.templates.ElemTemplateElement
appendChild, 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, 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, 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 Detail
-
m_doc_cache_off
public boolean m_doc_cache_off
This is set by an "xalan-doc-cache-off" pi, or the old "xalan:doc-cache-off" pi. The old form of the PI only works for XML parsers that are not namespace aware. It tells the engine that documents created in the location paths executed by this element will not be reparsed. It's set by StylesheetHandler during construction. Note that this feature applies _only_ to xsl:for-each elements in its current incarnation; a more general cache management solution is desperately needed.
-
-
Method Detail
-
setSelect
public void setSelect(XPath xpath)
Set the "select" attribute.- Parameters:
xpath
- The XPath expression for the "select" attribute.
-
getSelect
public Expression getSelect()
Get the "select" attribute.- Returns:
- The XPath expression for the "select" attribute.
-
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. NEEDSDOC @param sroot- Overrides:
compose
in classElemTemplateElement
- 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 classElemTemplateElement
- Throws:
javax.xml.transform.TransformerException
-
getSortElemCount
public int getSortElemCount()
Get the count xsl:sort elements associated with this element.- Returns:
- The number of xsl:sort elements.
-
getSortElem
public ElemSort getSortElem(int i)
Get a xsl:sort element associated with this element.- Parameters:
i
- Index of xsl:sort element to get- Returns:
- xsl:sort element at given index
-
setSortElem
public void setSortElem(ElemSort sortElem)
Set a xsl:sort element associated with this element.- Parameters:
sortElem
- xsl:sort element to set
-
getXSLToken
public int getXSLToken()
Get an int constant identifying the type of element.- Overrides:
getXSLToken
in classElemTemplateElement
- Returns:
- The token ID for this element
- See Also:
Constants
-
getNodeName
public java.lang.String getNodeName()
Return the node name.- Specified by:
getNodeName
in interfaceorg.w3c.dom.Node
- Overrides:
getNodeName
in classElemTemplateElement
- Returns:
- The element's name
-
execute
public void execute(TransformerImpl transformer) throws javax.xml.transform.TransformerException
Execute the xsl:for-each transformation- Overrides:
execute
in classElemTemplateElement
- Parameters:
transformer
- non-null reference to the the current transform-time state.- Throws:
javax.xml.transform.TransformerException
-
sortNodes
public DTMIterator sortNodes(XPathContext xctxt, java.util.Vector keys, DTMIterator sourceNodes) throws javax.xml.transform.TransformerException
Sort given nodes- Parameters:
xctxt
- The XPath runtime state for the sort.keys
- Vector of sort keyxsourceNodes
- Iterator of nodes to sort- Returns:
- iterator of sorted nodes
- Throws:
javax.xml.transform.TransformerException
-
transformSelectedNodes
public void transformSelectedNodes(TransformerImpl transformer) throws javax.xml.transform.TransformerException
Perform a query if needed, and call transformNode for each child.- Parameters:
transformer
- non-null reference to the the current transform-time state.- Throws:
javax.xml.transform.TransformerException
- Thrown in a variety of circumstances.
-
appendChild
public ElemTemplateElement appendChild(ElemTemplateElement newChild)
Add a child to the child list.- Overrides:
appendChild
in classElemTemplateElement
- Parameters:
newChild
- Child to add to child list- Returns:
- Child just added to child list
-
callChildVisitors
public void callChildVisitors(XSLTVisitor visitor, boolean callAttributes)
Call the children visitors.- Parameters:
visitor
- The visitor whose appropriate method will be called.
-
getExpression
public Expression getExpression()
Description copied from interface:ExpressionOwner
Get the raw Expression object that this class wraps.- Specified by:
getExpression
in interfaceExpressionOwner
- Returns:
- the raw Expression object, which should not normally be null.
- See Also:
ExpressionOwner.getExpression()
-
setExpression
public void setExpression(Expression exp)
Description copied from interface:ExpressionOwner
Set the raw expression object for this object.- Specified by:
setExpression
in interfaceExpressionOwner
- Parameters:
exp
- the raw Expression object, which should not normally be null.- See Also:
ExpressionOwner.setExpression(Expression)
-
-