org.apache.commons.collections.iterators
Class ObjectArrayListIterator

java.lang.Object
  extended by org.apache.commons.collections.iterators.ObjectArrayIterator
      extended by org.apache.commons.collections.iterators.ObjectArrayListIterator
All Implemented Interfaces:
java.util.Iterator, java.util.ListIterator, ResettableIterator, ResettableListIterator

public class ObjectArrayListIterator
extends ObjectArrayIterator
implements java.util.ListIterator, ResettableListIterator

Implements a ListIterator over an array of objects.

This iterator does not support add(java.lang.Object) or ObjectArrayIterator.remove(), as the object array cannot be structurally modified. The set(java.lang.Object) method is supported however.

The iterator implements a reset() method, allowing the reset of the iterator back to the start if required.

Since:
Commons Collections 3.0
Version:
$Revision: 647116 $ $Date: 2008-04-11 12:23:08 +0100 (Fri, 11 Apr 2008) $
Author:
Neil O'Toole, Stephen Colebourne, Phil Steitz
See Also:
ObjectArrayIterator, Iterator, ListIterator

Field Summary
protected  int lastItemIndex
          Holds the index of the last item returned by a call to next() or previous().
 
Fields inherited from class org.apache.commons.collections.iterators.ObjectArrayIterator
array, endIndex, index, startIndex
 
Constructor Summary
ObjectArrayListIterator()
          Constructor for use with setArray.
ObjectArrayListIterator(java.lang.Object[] array)
          Constructs an ObjectArrayListIterator that will iterate over the values in the specified array.
ObjectArrayListIterator(java.lang.Object[] array, int start)
          Constructs an ObjectArrayListIterator that will iterate over the values in the specified array from a specific start index.
ObjectArrayListIterator(java.lang.Object[] array, int start, int end)
          Construct an ObjectArrayListIterator that will iterate over a range of values in the specified array.
 
Method Summary
 void add(java.lang.Object obj)
          This iterator does not support modification of its backing array's size, and so will always throw an UnsupportedOperationException when this method is invoked.
 boolean hasPrevious()
          Returns true if there are previous elements to return from the array.
 java.lang.Object next()
          Gets the next element from the array.
 int nextIndex()
          Gets the next index to be retrieved.
 java.lang.Object previous()
          Gets the previous element from the array.
 int previousIndex()
          Gets the index of the item to be retrieved if previous() is called.
 void reset()
          Resets the iterator back to the start index.
 void set(java.lang.Object obj)
          Sets the element under the cursor.
 
Methods inherited from class org.apache.commons.collections.iterators.ObjectArrayIterator
getArray, getEndIndex, getStartIndex, hasNext, remove, setArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

lastItemIndex

protected int lastItemIndex
Holds the index of the last item returned by a call to next() or previous(). This is set to -1 if neither method has yet been invoked. lastItemIndex is used to to implement the set(java.lang.Object) method.

Constructor Detail

ObjectArrayListIterator

public ObjectArrayListIterator()
Constructor for use with setArray.

Using this constructor, the iterator is equivalent to an empty iterator until ObjectArrayIterator.setArray(java.lang.Object[]) is called to establish the array to iterate over.


ObjectArrayListIterator

public ObjectArrayListIterator(java.lang.Object[] array)
Constructs an ObjectArrayListIterator that will iterate over the values in the specified array.

Parameters:
array - the array to iterate over
Throws:
java.lang.NullPointerException - if array is null

ObjectArrayListIterator

public ObjectArrayListIterator(java.lang.Object[] array,
                               int start)
Constructs an ObjectArrayListIterator that will iterate over the values in the specified array from a specific start index.

Parameters:
array - the array to iterate over
start - the index to start iterating at
Throws:
java.lang.NullPointerException - if array is null
java.lang.IndexOutOfBoundsException - if the start index is out of bounds

ObjectArrayListIterator

public ObjectArrayListIterator(java.lang.Object[] array,
                               int start,
                               int end)
Construct an ObjectArrayListIterator that will iterate over a range of values in the specified array.

Parameters:
array - the array to iterate over
start - the index to start iterating at
end - the index (exclusive) to finish iterating at
Throws:
java.lang.IndexOutOfBoundsException - if the start or end index is out of bounds
java.lang.IllegalArgumentException - if end index is before the start
java.lang.NullPointerException - if array is null
Method Detail

hasPrevious

public boolean hasPrevious()
Returns true if there are previous elements to return from the array.

Specified by:
hasPrevious in interface java.util.ListIterator
Returns:
true if there is a previous element to return

previous

public java.lang.Object previous()
Gets the previous element from the array.

Specified by:
previous in interface java.util.ListIterator
Returns:
the previous element
Throws:
java.util.NoSuchElementException - if there is no previous element

next

public java.lang.Object next()
Gets the next element from the array.

Specified by:
next in interface java.util.Iterator
Specified by:
next in interface java.util.ListIterator
Overrides:
next in class ObjectArrayIterator
Returns:
the next element
Throws:
java.util.NoSuchElementException - if there is no next element

nextIndex

public int nextIndex()
Gets the next index to be retrieved.

Specified by:
nextIndex in interface java.util.ListIterator
Returns:
the index of the item to be retrieved next

previousIndex

public int previousIndex()
Gets the index of the item to be retrieved if previous() is called.

Specified by:
previousIndex in interface java.util.ListIterator
Returns:
the index of the item to be retrieved next

add

public void add(java.lang.Object obj)
This iterator does not support modification of its backing array's size, and so will always throw an UnsupportedOperationException when this method is invoked.

Specified by:
add in interface java.util.ListIterator
Parameters:
obj - the object to add
Throws:
java.lang.UnsupportedOperationException - always thrown.

set

public void set(java.lang.Object obj)
Sets the element under the cursor.

This method sets the element that was returned by the last call to next() of previous(). Note: ListIterator implementations that support add() and remove() only allow set() to be called once per call to next() or previous (see the ListIterator javadoc for more details). Since this implementation does not support add() or remove(), set() may be called as often as desired.

Specified by:
set in interface java.util.ListIterator
Parameters:
obj - the object to set into the array
Throws:
java.lang.IllegalStateException - if next() has not yet been called.
java.lang.ClassCastException - if the object type is unsuitable for the array

reset

public void reset()
Resets the iterator back to the start index.

Specified by:
reset in interface ResettableIterator
Specified by:
reset in interface ResettableListIterator
Overrides:
reset in class ObjectArrayIterator


Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.