info.aduna.iteration
Class FilterIteration<E,X extends Exception>

java.lang.Object
  extended by info.aduna.iteration.CloseableIterationBase<E,X>
      extended by info.aduna.iteration.IterationWrapper<E,X>
          extended by info.aduna.iteration.FilterIteration<E,X>
All Implemented Interfaces:
CloseableIteration<E,X>, Iteration<E,X>
Direct Known Subclasses:
DistinctIteration, FilterIterator, IntersectIteration, MinusIteration, OffsetIteration

public abstract class FilterIteration<E,X extends Exception>
extends IterationWrapper<E,X>

A CloseableIteration that wraps another Iteration, applying a filter on the objects that are returned. Subclasses must implement the accept method to indicate which objects should be returned.


Field Summary
 
Fields inherited from class info.aduna.iteration.IterationWrapper
wrappedIter
 
Fields inherited from class info.aduna.iteration.CloseableIterationBase
logger
 
Constructor Summary
FilterIteration(Iteration<? extends E,? extends X> iter)
           
 
Method Summary
protected abstract  boolean accept(E object)
          Tests whether or not the specified object should be returned by this Iteration.
protected  void handleClose()
          Closed this Iteration and also closes the wrapped Iteration if it is a CloseableIteration.
 boolean hasNext()
          Checks whether the wrapped Iteration contains more elements, closing this Iteration when this is not the case.
 E next()
          Returns the next element from the wrapped Iteration.
 
Methods inherited from class info.aduna.iteration.IterationWrapper
remove
 
Methods inherited from class info.aduna.iteration.CloseableIterationBase
close, isClosed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FilterIteration

public FilterIteration(Iteration<? extends E,? extends X> iter)
Parameters:
iter -
Method Detail

hasNext

public boolean hasNext()
                throws X extends Exception
Description copied from class: IterationWrapper
Checks whether the wrapped Iteration contains more elements, closing this Iteration when this is not the case.

Specified by:
hasNext in interface Iteration<E,X extends Exception>
Overrides:
hasNext in class IterationWrapper<E,X extends Exception>
Returns:
true if the wrapped Iteration contains more elements, false otherwise.
Throws:
X
X extends Exception

next

public E next()
       throws X extends Exception
Description copied from class: IterationWrapper
Returns the next element from the wrapped Iteration.

Specified by:
next in interface Iteration<E,X extends Exception>
Overrides:
next in class IterationWrapper<E,X extends Exception>
Returns:
the next element in the iteration.
Throws:
X extends Exception

accept

protected abstract boolean accept(E object)
                           throws X extends Exception
Tests whether or not the specified object should be returned by this Iteration. All objects from the wrapped Iteration pass through this method in the same order as they are coming from the wrapped Iteration.

Parameters:
object - The object to be tested.
Returns:
true if the object should be returned, false otherwise.
Throws:
X
X extends Exception

handleClose

protected void handleClose()
                    throws X extends Exception
Description copied from class: IterationWrapper
Closed this Iteration and also closes the wrapped Iteration if it is a CloseableIteration.

Overrides:
handleClose in class IterationWrapper<E,X extends Exception>
Throws:
X
X extends Exception


Copyright © 1997-2008 Aduna. All Rights Reserved.