info.aduna.iteration
Class IntersectIteration<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>
              extended by info.aduna.iteration.IntersectIteration<E,X>
All Implemented Interfaces:
CloseableIteration<E,X>, Iteration<E,X>
Direct Known Subclasses:
IntersectIterator

public class IntersectIteration<E,X extends Exception>
extends FilterIteration<E,X>

An Iteration that returns the intersection of the results of two Iterations. Optionally, the Iteration can be configured to filter duplicates from the returned elements.

Note that duplicates can also be filtered by wrapping this Iteration in a DistinctIteration, but that has a bit more overhead as it adds a second hash table lookup.


Field Summary
 
Fields inherited from class info.aduna.iteration.IterationWrapper
wrappedIter
 
Fields inherited from class info.aduna.iteration.CloseableIterationBase
logger
 
Constructor Summary
IntersectIteration(Iteration<? extends E,? extends X> arg1, Iteration<? extends E,? extends X> arg2)
          Creates a new IntersectIteration that returns the intersection of the results of two Iterations.
IntersectIteration(Iteration<? extends E,? extends X> arg1, Iteration<? extends E,? extends X> arg2, boolean distinct)
          Creates a new IntersectIteration that returns the intersection of the results of two Iterations.
 
Method Summary
protected  boolean accept(E object)
          Returns true if the object is in the set of elements of the second argument.
protected  void handleClose()
          Closed this Iteration and also closes the wrapped Iteration if it is a CloseableIteration.
 
Methods inherited from class info.aduna.iteration.FilterIteration
hasNext, next
 
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

IntersectIteration

public IntersectIteration(Iteration<? extends E,? extends X> arg1,
                          Iteration<? extends E,? extends X> arg2)
Creates a new IntersectIteration that returns the intersection of the results of two Iterations. By default, duplicates are not filtered from the results.

Parameters:
arg1 - An Iteration containing the first set of elements.
arg2 - An Iteration containing the second set of elements.

IntersectIteration

public IntersectIteration(Iteration<? extends E,? extends X> arg1,
                          Iteration<? extends E,? extends X> arg2,
                          boolean distinct)
Creates a new IntersectIteration that returns the intersection of the results of two Iterations.

Parameters:
arg1 - An Iteration containing the first set of elements.
arg2 - An Iteration containing the second set of elements.
distinct - Flag indicating whether duplicate elements should be filtered from the result.
Method Detail

accept

protected boolean accept(E object)
                  throws X extends Exception
Returns true if the object is in the set of elements of the second argument.

Specified by:
accept in class FilterIteration<E,X extends Exception>
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 FilterIteration<E,X extends Exception>
Throws:
X
X extends Exception


Copyright © 1997-2008 Aduna. All Rights Reserved.