## org.apache.commons.collections.list
Class CursorableLinkedList.Cursor

    java.lang.Object
      org.apache.commons.collections.list.AbstractLinkedList.LinkedListIterator
          org.apache.commons.collections.list.CursorableLinkedList.Cursor

All Implemented Interfaces:
  Iterator, ListIterator, OrderedIterator

Enclosing class:
  CursorableLinkedList

public static class CursorableLinkedList.Cursor
extends AbstractLinkedList.LinkedListIterator

An extended `ListIterator` that allows concurrent changes to the underlying list.

Field Summary

Fields inherited from class org.apache.commons.collections.list.AbstractLinkedList.LinkedListIterator
`current, expectedModCount, next, nextIndex, parent`

Constructor Summary
`protected` `CursorableLinkedList.Cursor(CursorableLinkedList parent, int index)` Constructs a new cursor.

Method Summary
`void` `add(Object obj)` Adds an object to the list.
`protected void` `checkModCount()` Override superclass modCount check, and replace it with our valid flag.
`void` `close()` Mark this cursor as no longer being needed.
`int` `nextIndex()` Gets the index of the next element to be returned.
`protected void` `nodeChanged(AbstractLinkedList.Node node)` Handle event from the list when a node has changed.
`protected void` `nodeInserted(AbstractLinkedList.Node node)` Handle event from the list when a node has been added.
`protected void` `nodeRemoved(AbstractLinkedList.Node node)` Handle event from the list when a node has been removed.

Methods inherited from class org.apache.commons.collections.list.AbstractLinkedList.LinkedListIterator
`getLastNodeReturned, hasNext, hasPrevious, next, previous, previousIndex, remove, set`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CursorableLinkedList.Cursor

    protected CursorableLinkedList.Cursor(CursorableLinkedList parent,
                                          int index)

  Constructs a new cursor.

Parameters:
  `index` - the index to start from

Method Detail

### add

    public void add(Object obj)

  Adds an object to the list. The object added here will be the new 'previous' in the iterator.

  Specified by:
    `add` in interface `ListIterator`
  Overrides:
    `add` in class `AbstractLinkedList.LinkedListIterator`
  Parameters:
    `obj` - the object to add

### nextIndex

    public int nextIndex()

  Gets the index of the next element to be returned.

  Specified by:
    `nextIndex` in interface `ListIterator`
  Overrides:
    `nextIndex` in class `AbstractLinkedList.LinkedListIterator`
  Returns:
    the next index

### nodeChanged

    protected void nodeChanged(AbstractLinkedList.Node node)

  Handle event from the list when a node has changed.

  Parameters:
    `node` - the node that changed

### nodeRemoved

    protected void nodeRemoved(AbstractLinkedList.Node node)

  Handle event from the list when a node has been removed.

  Parameters:
    `node` - the node that was removed

### nodeInserted

    protected void nodeInserted(AbstractLinkedList.Node node)

  Handle event from the list when a node has been added.

  Parameters:
    `node` - the node that was added

### checkModCount

    protected void checkModCount()

  Override superclass modCount check, and replace it with our valid flag.

  Overrides:
    `checkModCount` in class `AbstractLinkedList.LinkedListIterator`

### close

    public void close()

  Mark this cursor as no longer being needed. Any resources associated with this cursor are immediately released. In previous versions of this class, it was mandatory to close all cursor objects to avoid memory leaks. It is no longer necessary to call this close method; an instance of this class can now be treated exactly like a normal iterator.

Copyright © 2001-2005 Apache Software Foundation. All Rights Reserved.