Class ParentNodeImpl

All Implemented Interfaces:
NodeInfo, DOMLocator, Source, SourceLocator, 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 Details

    • sequence

      protected int sequence
  • Constructor Details

    • ParentNodeImpl

      ParentNodeImpl()
  • Method Details

    • 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 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 Node getFirstChild()
      Get the first child node of the element
      Specified by:
      getFirstChild in interface 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 Node getLastChild()
      Get the last child node of the element
      Specified by:
      getLastChild in interface Node
      Overrides:
      getLastChild in class NodeImpl
      Returns:
      the last child of the element, or null if there are no children
    • getChildNodes

      public final 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 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 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 TransformerException
      Copy the string-value of this node to a given outputter
      Specified by:
      copyStringValue in interface NodeInfo
      Overrides:
      copyStringValue in class AbstractNode
      Throws:
      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 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 Node
      Overrides:
      getNodeValue in class AbstractNode