Class AbstractDomNodeList<E extends DomNode>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
org.htmlunit.html.AbstractDomNodeList<E>
Type Parameters:
E - The element type
All Implemented Interfaces:
Serializable, Iterable<E>, Collection<E>, List<E>, SequencedCollection<E>, DomNodeList<E>, NodeList

public abstract class AbstractDomNodeList<E extends DomNode> extends AbstractList<E> implements DomNodeList<E>, Serializable
A generic DomNodeList implementation of NodeList.
See Also:
  • Field Details

    • node_

      private DomNode node_
      This node list's root node.
    • cachedElements_

      private List<E extends DomNode> cachedElements_
      Element cache, used to avoid XPath expression evaluation as much as possible.
  • Constructor Details

    • AbstractDomNodeList

      public AbstractDomNodeList(DomNode node)
      Creates a new node list. The elements will be "calculated" using the specified XPath expression applied on the specified node.
      Parameters:
      node - the node to serve as root for the XPath expression
  • Method Details

    • getDomNode

      protected DomNode getDomNode()
      Returns the DOM node.
      Returns:
      the DOM node
    • provideElements

      protected abstract List<E> provideElements()
      Returns the elements.
      Returns:
      the elements
    • getNodes

      private List<E> getNodes()
      Returns the nodes in this node list, caching as necessary.
      Returns:
      the nodes in this node list
    • size

      public int size()
      Specified by:
      size in interface Collection<E extends DomNode>
      Specified by:
      size in interface List<E extends DomNode>
      Specified by:
      size in class AbstractCollection<E extends DomNode>
    • getLength

      public int getLength()
      Specified by:
      getLength in interface NodeList
    • item

      public Node item(int index)
      Specified by:
      item in interface NodeList
    • get

      public E get(int index)
      Specified by:
      get in interface List<E extends DomNode>
      Specified by:
      get in class AbstractList<E extends DomNode>