harpoon.Util
Class FilterIterator

java.lang.Object
  |
  +--harpoon.Util.UnmodifiableIterator
        |
        +--harpoon.Util.FilterIterator
All Implemented Interfaces:
Iterator

public class FilterIterator
extends UnmodifiableIterator
implements Iterator

A FilterIterator filters and maps a source Iterator to generate a new one. Note that this implementation reads one element ahead, so if the Filter changes for an object 'o' between the time that is read (when next() is called, returning the object preceding 'o', and checking that 'o' satisfies the current Filter) and the time when hasNext() is called, 'o' will still be returned, regardless of what Filter.isElement(o) returns. Thus, it is recommended that only Filters which remain consistent throughout the iteration be used.

Version:
$Id: FilterIterator.java,v 1.2 2002/02/25 21:08:45 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>

Nested Class Summary
static class FilterIterator.Filter
           
 
Constructor Summary
FilterIterator(Iterator i, FilterIterator.Filter f)
          Creates a FilterIterator.
 
Method Summary
 boolean hasNext()
          Returns true if the iteration has more elements.
 Object next()
          Returns the next element in the iteration.
 
Methods inherited from class harpoon.Util.UnmodifiableIterator
remove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Iterator
remove
 

Constructor Detail

FilterIterator

public FilterIterator(Iterator i,
                      FilterIterator.Filter f)
Creates a FilterIterator.

Method Detail

next

public Object next()
Description copied from class: UnmodifiableIterator
Returns the next element in the iteration.

Specified by:
next in interface Iterator
Specified by:
next in class UnmodifiableIterator

hasNext

public boolean hasNext()
Description copied from class: UnmodifiableIterator
Returns true if the iteration has more elements.

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