Class 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 Detail

      • sequence

        protected int sequence
    • Constructor Detail

      • ParentNodeImpl

        ParentNodeImpl()
    • 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 class NodeImpl
      • hasChildNodes

        public final boolean hasChildNodes()
        Determine if the node has any children.
        Specified by:
        hasChildNodes in interface org.w3c.dom.Node
        Specified by:
        hasChildNodes in interface NodeInfo
        Overrides:
        hasChildNodes in class NodeImpl
        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 interface org.w3c.dom.Node
        Overrides:
        getFirstChild in class NodeImpl
        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 interface org.w3c.dom.Node
        Overrides:
        getLastChild in class NodeImpl
        Returns:
        the last child of the element, or null if there are no children
      • getChildNodes

        public final org.w3c.dom.NodeList getChildNodes()
        Return a NodeList that contains all children of this node. If there are no children, this is a NodeList containing no nodes.
        Specified by:
        getChildNodes in interface org.w3c.dom.Node
        Overrides:
        getChildNodes in class NodeImpl
      • 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 interface NodeInfo
        Overrides:
        copyStringValue in class AbstractNode
        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 interface org.w3c.dom.Node
        Overrides:
        getNodeValue in class AbstractNode