Package com.icl.saxon.tree
Class ParentNodeImpl
- java.lang.Object
-
- com.icl.saxon.om.AbstractNode
-
- com.icl.saxon.tree.NodeImpl
-
- com.icl.saxon.tree.ParentNodeImpl
-
- All Implemented Interfaces:
NodeInfo
,javax.xml.transform.dom.DOMLocator
,javax.xml.transform.Source
,javax.xml.transform.SourceLocator
,org.w3c.dom.Node
- Direct Known Subclasses:
DocumentImpl
,ElementImpl
abstract class ParentNodeImpl extends NodeImpl
ParentNodeImpl is an implementation of a non-leaf node (specifically, an Element node or a Document node)- Author:
- Michael H. Kay
-
-
Field Summary
Fields Modifier and Type Field Description protected int
sequence
-
Fields inherited from class com.icl.saxon.tree.NodeImpl
emptyArray, index, parent
-
Fields inherited from class com.icl.saxon.om.AbstractNode
NODE_LETTER
-
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 ParentNodeImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChild(NodeImpl node, int index)
Add a child node to this node.void
compact(int size)
Compact the space used by this nodevoid
copyStringValue(Outputter out)
Copy the string-value of this node to a given outputtervoid
dropChildren()
Drop a branch of the tree.AxisEnumeration
enumerateChildren(NodeTest test)
Get an enumeration of the children of this nodeorg.w3c.dom.NodeList
getChildNodes()
Return aNodeList
that contains all children of this node.org.w3c.dom.Node
getFirstChild()
Get the first child node of the elementorg.w3c.dom.Node
getLastChild()
Get the last child node of the elementjava.lang.String
getNodeValue()
Get the node value as defined in the DOM.protected NodeImpl
getNthChild(int n)
Get the nth child node of the element (numbering from 0)protected long
getSequenceNumber()
Get the node sequence number (in document order).java.lang.String
getStringValue()
Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.boolean
hasChildNodes()
Determine if the node has any children.void
removeChild(int index)
Remove node at given index.void
renumberChildren()
Renumber the children of a given parent node.void
useChildrenArray(NodeImpl[] array)
Supply an array to be used for the array of children.-
Methods inherited from class com.icl.saxon.tree.NodeImpl
compareOrder, generateId, getAttributes, getAttributeValue, getAttributeValue, getBaseURI, getDisplayName, getDocumentElement, getDocumentRoot, getEnumeration, getFingerprint, getLineNumber, getLocalName, getNameCode, getNamePool, getNextInDocument, getNextSibling, getOriginatingNode, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getSystemId, getURI, hasAttributes, isSameNodeInfo, outputNamespaceNodes, removeNode, setSystemId
-
Methods inherited from class com.icl.saxon.om.AbstractNode
appendChild, appendData, cloneNode, compareDocumentPosition, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getColumnNumber, getData, getDoctype, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getImplementation, getLength, getName, getNamespaceURI, getNodeName, getOwnerDocument, getOwnerElement, getParentNode, getPublicId, getSchemaTypeInfo, getSpecified, getTagName, getTextContent, getUserData, getValue, getWholeText, hasAttribute, hasAttributeNS, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isId, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, replaceChild, replaceData, replaceWholeText, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.icl.saxon.om.NodeInfo
copy, getNodeType
-
-
-
-
Method Detail
-
getSequenceNumber
protected final long getSequenceNumber()
Get the node sequence number (in document order). Sequence numbers are monotonic but not consecutive. In the current implementation, parent nodes (elements and roots) have a zero least-significant word, while namespaces, attributes, text nodes, comments, and PIs have the top word the same as their owner and the bottom half reflecting their relative position.- Overrides:
getSequenceNumber
in classNodeImpl
-
hasChildNodes
public final boolean hasChildNodes()
Determine if the node has any children.- Specified by:
hasChildNodes
in interfaceorg.w3c.dom.Node
- Specified by:
hasChildNodes
in interfaceNodeInfo
- Overrides:
hasChildNodes
in classNodeImpl
- Returns:
true
if the node has any children,false
if the node has no children.
-
enumerateChildren
public final AxisEnumeration enumerateChildren(NodeTest test)
Get an enumeration of the children of this node
-
getFirstChild
public final org.w3c.dom.Node getFirstChild()
Get the first child node of the element- Specified by:
getFirstChild
in interfaceorg.w3c.dom.Node
- Overrides:
getFirstChild
in classNodeImpl
- Returns:
- the first child node of the required type, or null if there are no children
-
getLastChild
public final org.w3c.dom.Node getLastChild()
Get the last child node of the element- Specified by:
getLastChild
in interfaceorg.w3c.dom.Node
- Overrides:
getLastChild
in classNodeImpl
- Returns:
- the last child of the element, or null if there are no children
-
getChildNodes
public final org.w3c.dom.NodeList getChildNodes()
Return aNodeList
that contains all children of this node. If there are no children, this is aNodeList
containing no nodes.- Specified by:
getChildNodes
in interfaceorg.w3c.dom.Node
- Overrides:
getChildNodes
in classNodeImpl
-
getNthChild
protected final NodeImpl getNthChild(int n)
Get the nth child node of the element (numbering from 0)- Returns:
- the last child of the element, or null if there is no n'th child
-
getStringValue
public java.lang.String getStringValue()
Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.- Returns:
- the accumulated character content of the element, including descendant elements.
-
copyStringValue
public void copyStringValue(Outputter out) throws javax.xml.transform.TransformerException
Copy the string-value of this node to a given outputter- Specified by:
copyStringValue
in interfaceNodeInfo
- Overrides:
copyStringValue
in classAbstractNode
- Throws:
javax.xml.transform.TransformerException
-
useChildrenArray
public void useChildrenArray(NodeImpl[] array)
Supply an array to be used for the array of children. For system use only.
-
addChild
public void addChild(NodeImpl node, int index)
Add a child node to this node. For system use only. Note: normalizing adjacent text nodes is the responsibility of the caller.
-
removeChild
public void removeChild(int index)
Remove node at given index. Will always be followed by a renumberChildren().
-
renumberChildren
public void renumberChildren()
Renumber the children of a given parent node. For system use only
-
dropChildren
public void dropChildren()
Drop a branch of the tree. The target element remains in the tree, but its children are disconnected from the parent. Unless there are other references to the children (e.g. in a variable) they will be deleted from memory next time the garbage collector comes round.
-
compact
public void compact(int size)
Compact the space used by this node
-
getNodeValue
public java.lang.String getNodeValue()
Get the node value as defined in the DOM. This is not the same as the XPath string-value.- Specified by:
getNodeValue
in interfaceorg.w3c.dom.Node
- Overrides:
getNodeValue
in classAbstractNode
-
-