|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--org.apache.commons.collections.iterators.IteratorChain
An IteratorChain is an Iterator that wraps a number of Iterators.
This class makes multiple iterators look like one to the caller When any method from the Iterator interface is called, the IteratorChain will delegate to a single underlying Iterator. The IteratorChain will invoke the Iterators in sequence until all Iterators are exhausted.
Under many circumstances, linking Iterators together in this manner is more efficient (and convenient) than reading out the contents of each Iterator into a List and creating a new Iterator.
Calling a method that adds new Iteratorafter a method in the Iterator interface has been called will result in an UnsupportedOperationException. Subclasses should take care to not alter the underlying List of Iterators.
NOTE: As from version 3.0, the IteratorChain may contain no iterators. In this case the class will function as an empty iterator.
| Constructor Summary | |
IteratorChain()
Construct an IteratorChain with no Iterators. |
|
IteratorChain(java.util.Collection iterators)
Constructs a new IteratorChain over the collection
of iterators. |
|
IteratorChain(java.util.Iterator iterator)
Construct an IteratorChain with a single Iterator. |
|
IteratorChain(java.util.Iterator[] iterators)
Constructs a new IteratorChain over the array
of iterators. |
|
IteratorChain(java.util.Iterator a,
java.util.Iterator b)
Constructs a new IteratorChain over the two
given iterators. |
|
| Method Summary | |
void |
addIterator(java.util.Iterator iterator)
Add an Iterator to the end of the chain |
java.util.List |
getIterators()
Get the list of Iterators (unmodifiable) |
boolean |
hasNext()
Return true if any Iterator in the IteratorChain has a remaining element. |
boolean |
isLocked()
Determine if modifications can still be made to the IteratorChain. |
java.lang.Object |
next()
Returns the next Object of the current Iterator |
void |
remove()
Removes from the underlying collection the last element returned by the Iterator. |
void |
setIterator(int index,
java.util.Iterator iterator)
Set the Iterator at the given index |
int |
size()
Number of Iterators in the current IteratorChain. |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public IteratorChain()
You will normally use addIterator(Iterator) to add
some iterators after using this constructor.
public IteratorChain(java.util.Iterator iterator)
iterator - first Iterator in the IteratorChain
java.lang.NullPointerException - if the iterator is null
public IteratorChain(java.util.Iterator a,
java.util.Iterator b)
IteratorChain over the two
given iterators.
a - the first child iteratorb - the second child iterator
java.lang.NullPointerException - if either iterator is nullpublic IteratorChain(java.util.Iterator[] iterators)
IteratorChain over the array
of iterators.
iterators - the array of iterators
java.lang.NullPointerException - if iterators array is or contains nullpublic IteratorChain(java.util.Collection iterators)
IteratorChain over the collection
of iterators.
iterators - the collection of iterators
java.lang.NullPointerException - if iterators collection is or contains null
java.lang.ClassCastException - if iterators collection doesn't contain an iterator| Method Detail |
public void addIterator(java.util.Iterator iterator)
iterator - Iterator to add
java.lang.IllegalStateException - if I've already started iterating
java.lang.NullPointerException - if the iterator is null
public void setIterator(int index,
java.util.Iterator iterator)
throws java.lang.IndexOutOfBoundsException
index - index of the Iterator to replaceiterator - Iterator to place at the given index
java.lang.IndexOutOfBoundsException - if index < 0 or index > size()
java.lang.IllegalStateException - if I've already started iterating
java.lang.NullPointerException - if the iterator is nullpublic java.util.List getIterators()
public int size()
public boolean isLocked()
public boolean hasNext()
hasNext in interface java.util.Iteratorpublic java.lang.Object next()
next in interface java.util.Iteratorjava.util.NoSuchElementException - if all the Iterators are exhaustedpublic void remove()
remove in interface java.util.Iteratorjava.lang.UnsupportedOperationException - if the remove operator is not supported by the underlying Iterator
java.lang.IllegalStateException - if the next method has not yet been called, or the remove method has
already been called after the last call to the next method.
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||