org.apache.commons.collections4.iterators
Class ListIteratorWrapper<E>

java.lang.Object
  extended by org.apache.commons.collections4.iterators.ListIteratorWrapper<E>
All Implemented Interfaces:
Iterator<E>, ListIterator<E>, OrderedIterator<E>, ResettableIterator<E>, ResettableListIterator<E>

public class ListIteratorWrapper<E>
extends Object
implements ResettableListIterator<E>

Converts an Iterator into a ResettableListIterator. For plain Iterators this is accomplished by caching the returned elements. This class can also be used to simply add ResettableIterator functionality to a given ListIterator.

The ListIterator interface has additional useful methods for navigation - previous() and the index methods. This class allows a regular Iterator to behave as a ListIterator. It achieves this by building a list internally of as the underlying iterator is traversed.

The optional operations of ListIterator are not supported for plain Iterators.

This class implements ResettableListIterator from Commons Collections 3.2.

Since:
2.1
Version:
$Id: ListIteratorWrapper.java 1477802 2013-04-30 20:01:28Z tn $

Constructor Summary
ListIteratorWrapper(Iterator<? extends E> iterator)
          Constructs a new ListIteratorWrapper that will wrap the given iterator.
 
Method Summary
 void add(E obj)
          Throws UnsupportedOperationException unless the underlying Iterator is a ListIterator.
 boolean hasNext()
          Returns true if there are more elements in the iterator.
 boolean hasPrevious()
          Returns true if there are previous elements in the iterator.
 E next()
          Returns the next element from the iterator.
 int nextIndex()
          Returns the index of the next element.
 E previous()
          Returns the the previous element.
 int previousIndex()
          Returns the index of the previous element.
 void remove()
          Throws UnsupportedOperationException if previous() has ever been called.
 void reset()
          Resets this iterator back to the position at which the iterator was created.
 void set(E obj)
          Throws UnsupportedOperationException unless the underlying Iterator is a ListIterator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ListIteratorWrapper

public ListIteratorWrapper(Iterator<? extends E> iterator)
Constructs a new ListIteratorWrapper that will wrap the given iterator.

Parameters:
iterator - the iterator to wrap
Throws:
NullPointerException - if the iterator is null
Method Detail

add

public void add(E obj)
         throws UnsupportedOperationException
Throws UnsupportedOperationException unless the underlying Iterator is a ListIterator.

Specified by:
add in interface ListIterator<E>
Parameters:
obj - the object to add
Throws:
UnsupportedOperationException - if the underlying iterator is not of type ListIterator

hasNext

public boolean hasNext()
Returns true if there are more elements in the iterator.

Specified by:
hasNext in interface Iterator<E>
Specified by:
hasNext in interface ListIterator<E>
Returns:
true if there are more elements

hasPrevious

public boolean hasPrevious()
Returns true if there are previous elements in the iterator.

Specified by:
hasPrevious in interface ListIterator<E>
Specified by:
hasPrevious in interface OrderedIterator<E>
Returns:
true if there are previous elements

next

public E next()
       throws NoSuchElementException
Returns the next element from the iterator.

Specified by:
next in interface Iterator<E>
Specified by:
next in interface ListIterator<E>
Returns:
the next element from the iterator
Throws:
NoSuchElementException - if there are no more elements

nextIndex

public int nextIndex()
Returns the index of the next element.

Specified by:
nextIndex in interface ListIterator<E>
Returns:
the index of the next element

previous

public E previous()
           throws NoSuchElementException
Returns the the previous element.

Specified by:
previous in interface ListIterator<E>
Specified by:
previous in interface OrderedIterator<E>
Returns:
the previous element
Throws:
NoSuchElementException - if there are no previous elements

previousIndex

public int previousIndex()
Returns the index of the previous element.

Specified by:
previousIndex in interface ListIterator<E>
Returns:
the index of the previous element

remove

public void remove()
            throws UnsupportedOperationException
Throws UnsupportedOperationException if previous() has ever been called.

Specified by:
remove in interface Iterator<E>
Specified by:
remove in interface ListIterator<E>
Throws:
UnsupportedOperationException - always

set

public void set(E obj)
         throws UnsupportedOperationException
Throws UnsupportedOperationException unless the underlying Iterator is a ListIterator.

Specified by:
set in interface ListIterator<E>
Parameters:
obj - the object to set
Throws:
UnsupportedOperationException - if the underlying iterator is not of type ListIterator

reset

public void reset()
Resets this iterator back to the position at which the iterator was created.

Specified by:
reset in interface ResettableIterator<E>
Since:
3.2


Copyright © 2001–2013 The Apache Software Foundation. All rights reserved.