nu.xom

## Class Nodes

- Object
- - nu.xom.Nodes

- All Implemented Interfaces:
    Iterable<Node>

      public final class Nodes
      extends Object
      implements Iterable<Node>

  Implements a list of nodes for traversal purposes. Changes to the document from which this list was generated are not reflected in this list, nor are changes to the list reflected in the document. Changes to the individual `Node` objects in the list and the document are reflected in the other one.

  There is no requirement that the list not contain duplicates, or that all the members come from the same document. It is simply a list of nodes.

  Version:
    1.3.0
  Author:
    Elliotte Rusty Harold

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Nodes()` Creates an empty node list.
    `Nodes(Node node)` Creates a node list containing a single node.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `append(Node node)` Adds a node at the end of this list.
    `boolean` | `contains(Node node)` Determines whether a node is contained in this list.
    `Node` | `get(int index)` Returns the indexth node in the list.
    `void` | `insert(Node node, int index)` Inserts a node at the indexth position in the list.
    `java.util.Iterator<Node>` | `iterator()`
    `Node` | `remove(int index)` Removes the indexthnode in the list.
    `int` | `size()` Returns the number of nodes in the list.

    - ### Methods inherited from class Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### Nodes

          public Nodes()

      Creates an empty node list.

    - #### Nodes

          public Nodes(Node node)

      Creates a node list containing a single node.

      Parameters:
        `node` - the node to insert in the list
      Throws:
        `NullPointerException` - if `node` is null

  - ### Method Detail

    - #### size

          public int size()

      Returns the number of nodes in the list. This is guaranteed to be non-negative.

      Returns:
        the number of nodes in the list

    - #### get

          public Node get(int index)

      Returns the indexth node in the list. The first node has index 0. The last node has index `size()-1`.

      Parameters:
        `index` - the node to return
      Returns:
        the node at the specified position
      Throws:
        `IndexOutOfBoundsException` - if `index` is negative or greater than or equal to the size of the list

    - #### remove

          public Node remove(int index)

      Removes the indexthnode in the list. Subsequent nodes have their indexes reduced by one.

      Parameters:
        `index` - the node to remove
      Returns:
        the node at the specified position
      Throws:
        `IndexOutOfBoundsException` - if index is negative or greater than or equal to the size of the list

    - #### insert

          public void insert(Node node,
                             int index)

      Inserts a node at the indexth position in the list. Subsequent nodes have their indexes increased by one.

      Parameters:
        `node` - the node to insert
        `index` - the position at which to insert the node
      Throws:
        `IndexOutOfBoundsException` - if `index` is negative or strictly greater than the size of the list
        `NullPointerException` - if `node` is null

    - #### append

          public void append(Node node)

      Adds a node at the end of this list.

      Parameters:
        `node` - the node to add to the list
      Throws:
        `NullPointerException` - if `node` is null

    - #### contains

          public boolean contains(Node node)

      Determines whether a node is contained in this list.

      Parameters:
        `node` - the node to search for
      Returns:
        true if this list contains the specified node; false otherwise

    - #### iterator

          public java.util.Iterator<Node> iterator()

      Specified by:
        `iterator` in interface `Iterable<Node>`

Copyright 2002-2026 Elliotte Rusty Harold
elharo@ibiblio.org