net.sourceforge.esw.util
Class JoiningIterator

java.lang.Object
  |
  +--net.sourceforge.esw.util.JoiningIterator
All Implemented Interfaces:
java.util.Iterator

public class JoiningIterator
extends java.lang.Object
implements java.util.Iterator

JoiningIterator makes an Iterator of Iterators appear as one Iterator.

For purposes of a Facade or an Aggregate pattern, you may want a collection of elements to appear as a single element. This JoiningIterator instance allows you to aggregate a collection of Iterators as a single Iterator.

The order of iteration through the collection of iterators is defined by the type of iterator added to this JoiningIterator. If the referenced Iterator is from a List, then the iteratation is ordered. If the referenced Iterator is from a Map, then the order of iteration is undefined.

See Also:
Iterator

Constructor Summary
JoiningIterator(java.util.Iterator listOfIterators)
          Creates a new JoiningIterator instance.
 
Method Summary
 boolean hasNext()
          Returns true if the iteration has more elements.
 java.lang.Object next()
          Returns the next element in the interation.
 void remove()
          Unsupported in JoiningIterator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JoiningIterator

public JoiningIterator(java.util.Iterator listOfIterators)
Creates a new JoiningIterator instance.
Parameters:
listOfIterators - the Iterator of iterators to treat as a single Interator.
Method Detail

hasNext

public boolean hasNext()
Returns true if the iteration has more elements. (In other words, returns true if next would return an element rather than throwing an exception.)

In this JoiningIterator instance, checks to see if any remaining Iterator has any other elements.

Specified by:
hasNext in interface java.util.Iterator
Returns:
true if the iterator has more elements.

next

public java.lang.Object next()
Returns the next element in the interation.

In JoiningIterator, returns the next available Object from the iterator that has another element.

Specified by:
next in interface java.util.Iterator
Returns:
the next element in the iteration.
Throws:
java.util.NoSuchElementException - iteration has no more elements.

remove

public void remove()
Unsupported in JoiningIterator.

Removes from the underlying collection the last element returned by the iterator (optional operation). This method can be called only once per call to next. The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method.

Specified by:
remove in interface java.util.Iterator
Throws:
java.lang.UnsupportedOperationException - if the remove operation is not supported by this 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.


Copyright 2002 Free Software Foundation. All Rights Reserved.