org.apache.commons.collections.list
Class CursorableLinkedList.Cursor<E>

java.lang.Object
  extended by org.apache.commons.collections.list.AbstractLinkedList.LinkedListIterator<E>
      extended by org.apache.commons.collections.list.CursorableLinkedList.Cursor<E>
All Implemented Interfaces:
Iterator<E>, ListIterator<E>, OrderedIterator<E>
Enclosing class:
CursorableLinkedList<E>

public static class CursorableLinkedList.Cursor<E>
extends AbstractLinkedList.LinkedListIterator<E>

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<E> parent, int index)
          Constructs a new cursor.
 
Method Summary
 void add(E 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<E> node)
          Handle event from the list when a node has changed.
protected  void nodeInserted(AbstractLinkedList.Node<E> node)
          Handle event from the list when a node has been added.
protected  void nodeRemoved(AbstractLinkedList.Node<E> 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<E> parent,
                                      int index)
Constructs a new cursor.

Parameters:
index - the index to start from
Method Detail

add

public void add(E 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<E>
Overrides:
add in class AbstractLinkedList.LinkedListIterator<E>
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<E>
Overrides:
nextIndex in class AbstractLinkedList.LinkedListIterator<E>
Returns:
the next index

nodeChanged

protected void nodeChanged(AbstractLinkedList.Node<E> node)
Handle event from the list when a node has changed.

Parameters:
node - the node that changed

nodeRemoved

protected void nodeRemoved(AbstractLinkedList.Node<E> 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<E> 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<E>

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 © 2005-2005 Apache Software Foundation, Matt Hall, John Watkinson. All Rights Reserved.