Package nu.xom

# Class Nodes

java.lang.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
Description
`Nodes()`
Creates an empty node list.
`Nodes(Node node)`
Creates a node list containing a single node.

## Method Summary

Modifier and Type
Method
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.
`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 java.lang.Object

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

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

## Constructor Details

### 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 Details

### 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

### 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 Iterator<Node> iterator()

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