org.apache.commons.collections15.iterators
Class FilterIterator<E>

java.lang.Object
  extended by org.apache.commons.collections15.iterators.FilterIterator<E>
All Implemented Interfaces:
Iterator<E>
Direct Known Subclasses:
UniqueFilterIterator

public class FilterIterator<E>
extends Object
implements Iterator<E>

Decorates an iterator such that only elements matching a predicate filter are returned.

Since:
Commons Collections 1.0
Version:
$Revision: 1.1 $ $Date: 2005/10/11 17:05:24 $
Author:
James Strachan, Jan Sorensen, Ralph Wagner, Matt Hall, John Watkinson, Stephen Colebourne

Constructor Summary
FilterIterator()
          Constructs a new FilterIterator that will not function until setIterator is invoked.
FilterIterator(Iterator<E> iterator)
          Constructs a new FilterIterator that will not function until setPredicate is invoked.
FilterIterator(Iterator<E> iterator, Predicate<? super E> predicate)
          Constructs a new FilterIterator that will use the given iterator and predicate.
 
Method Summary
 Iterator<E> getIterator()
          Gets the iterator this iterator is using.
 Predicate<? super E> getPredicate()
          Gets the predicate this iterator is using.
 boolean hasNext()
          Returns true if the underlying iterator contains an object that matches the predicate.
 E next()
          Returns the next object that matches the predicate.
 void remove()
          Removes from the underlying collection of the base iterator the last element returned by this iterator.
 void setIterator(Iterator<E> iterator)
          Sets the iterator for this iterator to use.
 void setPredicate(Predicate<? super E> predicate)
          Sets the predicate this the iterator to use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FilterIterator

public FilterIterator()
Constructs a new FilterIterator that will not function until setIterator is invoked.


FilterIterator

public FilterIterator(Iterator<E> iterator)
Constructs a new FilterIterator that will not function until setPredicate is invoked.

Parameters:
iterator - the iterator to use

FilterIterator

public FilterIterator(Iterator<E> iterator,
                      Predicate<? super E> predicate)
Constructs a new FilterIterator that will use the given iterator and predicate.

Parameters:
iterator - the iterator to use
predicate - the predicate to use
Method Detail

hasNext

public boolean hasNext()
Returns true if the underlying iterator contains an object that matches the predicate.

Specified by:
hasNext in interface Iterator<E>
Returns:
true if there is another object that matches the predicate

next

public E next()
Returns the next object that matches the predicate.

Specified by:
next in interface Iterator<E>
Returns:
the next object which matches the given predicate
Throws:
NoSuchElementException - if there are no more elements that match the predicate

remove

public void remove()
Removes from the underlying collection of the base iterator the last element returned by this iterator. This method can only be called if next() was called, but not after hasNext(), because the hasNext() call changes the base iterator.

Specified by:
remove in interface Iterator<E>
Throws:
IllegalStateException - if hasNext() has already been called.

getIterator

public Iterator<E> getIterator()
Gets the iterator this iterator is using.

Returns:
the iterator.

setIterator

public void setIterator(Iterator<E> iterator)
Sets the iterator for this iterator to use. If iteration has started, this effectively resets the iterator.

Parameters:
iterator - the iterator to use

getPredicate

public Predicate<? super E> getPredicate()
Gets the predicate this iterator is using.

Returns:
the predicate.

setPredicate

public void setPredicate(Predicate<? super E> predicate)
Sets the predicate this the iterator to use.

Parameters:
predicate - the transformer to use


Copyright © 2001-2010 Apache Software Foundation. All Rights Reserved.