Class JoinUncertainIteratorsIterator<T>
java.lang.Object
com.github.basking2.sdsai.itrex.iterators.splitjoin.JoinUncertainIteratorsIterator<T>
- Type Parameters:
T
- The types being joined.
- All Implemented Interfaces:
Iterator<T>
Collect and present data from a set of
UncertainIterator
s.
Every iterator with available data will be scheduled to fetch its in the given ExecutorService.
Thus this job processes, roughly, as widely as the distribution of iterator data.
If every UncertainIterator
returns UncertainIterator.HAS_NEXT.MAYBE
then this iterator will report false from hasNext()
. The processing model is that of the set of input
iterators, at least 1 will have some work to do at all times. This is suitable for distributing work in which
we always know that some work is available, but we do not know where it comes from.-
Constructor Summary
ConstructorDescriptionJoinUncertainIteratorsIterator
(Executor executor, UncertainIterator<UncertainIterator<T>> iterators) JoinUncertainIteratorsIterator
(Executor executor, List<UncertainIterator<T>> liveIterators) -
Method Summary
Modifier and TypeMethodDescriptionboolean
hasNext()
static <T> JoinUncertainIteratorsIterator<T>
join
(Executor executor, UncertainIterator<UncertainIterator<T>> uncertainIteratorUncertainIterator) static <T> JoinUncertainIteratorsIterator<T>
joinList
(Executor executor, List<UncertainIterator<T>> list) static <T> JoinUncertainIteratorsIterator<T>
joinSingle
(Executor executor, UncertainIterator<T> uncertainIterator) next()
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
forEachRemaining, remove
-
Constructor Details
-
JoinUncertainIteratorsIterator
public JoinUncertainIteratorsIterator(Executor executor, UncertainIterator<UncertainIterator<T>> iterators) -
JoinUncertainIteratorsIterator
-
-
Method Details
-
join
public static <T> JoinUncertainIteratorsIterator<T> join(Executor executor, UncertainIterator<UncertainIterator<T>> uncertainIteratorUncertainIterator) -
joinList
public static <T> JoinUncertainIteratorsIterator<T> joinList(Executor executor, List<UncertainIterator<T>> list) -
joinSingle
public static <T> JoinUncertainIteratorsIterator<T> joinSingle(Executor executor, UncertainIterator<T> uncertainIterator) -
hasNext
public boolean hasNext() -
next
-