org.apache.commons.collections.list
Class AbstractLinkedList.LinkedListIterator<E>

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

protected static class AbstractLinkedList.LinkedListIterator<E>
extends Object
implements ListIterator<E>, OrderedIterator<E>

A list iterator over the linked list.


Field Summary
protected  AbstractLinkedList.Node<E> current
          The last node that was returned by next() or previous().
protected  int expectedModCount
          The modification count that the list is expected to have.
protected  AbstractLinkedList.Node<E> next
          The node that will be returned by next().
protected  int nextIndex
          The index of next.
protected  AbstractLinkedList<E> parent
          The parent list
 
Constructor Summary
protected AbstractLinkedList.LinkedListIterator(AbstractLinkedList<E> parent, int fromIndex)
          Create a ListIterator for a list.
 
Method Summary
 void add(E obj)
           
protected  void checkModCount()
          Checks the modification count of the list is the value that this object expects.
protected  AbstractLinkedList.Node<E> getLastNodeReturned()
          Gets the last node returned.
 boolean hasNext()
           
 boolean hasPrevious()
          Checks to see if there is a previous entry that can be iterated to.
 E next()
           
 int nextIndex()
           
 E previous()
          Gets the previous element from the collection.
 int previousIndex()
           
 void remove()
           
 void set(E obj)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parent

protected final AbstractLinkedList<E> parent
The parent list


next

protected AbstractLinkedList.Node<E> next
The node that will be returned by next(). If this is equal to AbstractLinkedList.header then there are no more values to return.


nextIndex

protected int nextIndex
The index of next.


current

protected AbstractLinkedList.Node<E> current
The last node that was returned by next() or previous(). Set to null if next() or previous() haven't been called, or if the node has been removed with remove() or a new node added with add(Object). Should be accessed through getLastNodeReturned() to enforce this behaviour.


expectedModCount

protected int expectedModCount
The modification count that the list is expected to have. If the list doesn't have this count, then a ConcurrentModificationException may be thrown by the operations.

Constructor Detail

AbstractLinkedList.LinkedListIterator

protected AbstractLinkedList.LinkedListIterator(AbstractLinkedList<E> parent,
                                                int fromIndex)
                                         throws IndexOutOfBoundsException
Create a ListIterator for a list.

Parameters:
parent - the parent list
fromIndex - the index to start at
Throws:
IndexOutOfBoundsException
Method Detail

checkModCount

protected void checkModCount()
Checks the modification count of the list is the value that this object expects.

Throws:
ConcurrentModificationException - If the list's modification count isn't the value that was expected.

getLastNodeReturned

protected AbstractLinkedList.Node<E> getLastNodeReturned()
                                                  throws IllegalStateException
Gets the last node returned.

Throws:
IllegalStateException - If next() or previous() haven't been called, or if the node has been removed with remove() or a new node added with add(Object).

hasNext

public boolean hasNext()
Specified by:
hasNext in interface Iterator<E>
Specified by:
hasNext in interface ListIterator<E>

next

public E next()
Specified by:
next in interface Iterator<E>
Specified by:
next in interface ListIterator<E>

hasPrevious

public boolean hasPrevious()
Description copied from interface: OrderedIterator
Checks to see if there is a previous entry that can be iterated to.

Specified by:
hasPrevious in interface ListIterator<E>
Specified by:
hasPrevious in interface OrderedIterator<E>
Returns:
true if the iterator has a previous element

previous

public E previous()
Description copied from interface: OrderedIterator
Gets the previous element from the collection.

Specified by:
previous in interface ListIterator<E>
Specified by:
previous in interface OrderedIterator<E>
Returns:
the previous key in the iteration

nextIndex

public int nextIndex()
Specified by:
nextIndex in interface ListIterator<E>

previousIndex

public int previousIndex()
Specified by:
previousIndex in interface ListIterator<E>

remove

public void remove()
Specified by:
remove in interface Iterator<E>
Specified by:
remove in interface ListIterator<E>

set

public void set(E obj)
Specified by:
set in interface ListIterator<E>

add

public void add(E obj)
Specified by:
add in interface ListIterator<E>


Copyright © 2005-2005 Apache Software Foundation, Matt Hall, John Watkinson. All Rights Reserved.