Class ParentNodeImpl

java.lang.Object
net.sf.saxon.tree.NodeImpl
net.sf.saxon.tree.ParentNodeImpl
All Implemented Interfaces:
Source, SourceLocator, FingerprintedNode, Item, NodeInfo, ValueRepresentation
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 NodeInfo
      Overrides:
      hasChildNodes in class NodeImpl
      Returns:
      true if the node has any children, false if the node has no children.
    • enumerateChildren

      public final AxisIterator enumerateChildren(NodeTest test)
      Get an enumeration of the children of this node
      Parameters:
      test - A NodeTest to be satisfied by the child nodes, or null if all child node are to be returned
    • getFirstChild

      public final NodeInfo getFirstChild()
      Get the first child node of the element
      Overrides:
      getFirstChild in class NodeImpl
      Returns:
      the first child node of the required type, or null if there are no children
    • getLastChild

      public final NodeInfo getLastChild()
      Get the last child node of the element
      Overrides:
      getLastChild in class NodeImpl
      Returns:
      the last child of the element, or null if there are no children
    • 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.
      See Also:
    • getStringValueCS

      public CharSequence getStringValueCS()
      Description copied from class: NodeImpl
      Get the value of the item as a CharSequence. This is in some cases more efficient than the version of the method that returns a String.
      Specified by:
      getStringValueCS in interface Item
      Specified by:
      getStringValueCS in interface ValueRepresentation
      Overrides:
      getStringValueCS in class NodeImpl
      Returns:
      the string value of the item
      See Also:
    • 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.
    • compact

      public void compact(int size)
      Compact the space used by this node