You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/06/29 13:50:01 UTC
svn commit: r958940 -
/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils/src/main/java/org/apache/clerezza/utils/IteratorMerger.java
Author: mir
Date: Tue Jun 29 11:50:01 2010
New Revision: 958940
URL: http://svn.apache.org/viewvc?rev=958940&view=rev
Log:
added constructor to IteratorMerger that takes Collection of Collections as parameter
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils/src/main/java/org/apache/clerezza/utils/IteratorMerger.java
Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils/src/main/java/org/apache/clerezza/utils/IteratorMerger.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils/src/main/java/org/apache/clerezza/utils/IteratorMerger.java?rev=958940&r1=958939&r2=958940&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils/src/main/java/org/apache/clerezza/utils/IteratorMerger.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils/src/main/java/org/apache/clerezza/utils/IteratorMerger.java Tue Jun 29 11:50:01 2010
@@ -19,7 +19,9 @@
package org.apache.clerezza.utils;
+import java.util.Collection;
import java.util.Iterator;
+import java.util.Set;
/**
* Flattens an Iterator of Iterators to an Iterator
@@ -28,7 +30,7 @@ import java.util.Iterator;
*/
public class IteratorMerger<T> implements Iterator<T> {
- private final Iterator<Iterator<T>> baseIterators;
+ private Iterator<Iterator<T>> baseIterators;
private Iterator<T> current;
/**
@@ -37,6 +39,31 @@ public class IteratorMerger<T> implement
* @param baseIterators
*/
public IteratorMerger(Iterator<Iterator<T>> baseIterators) {
+ init(baseIterators);
+ }
+
+ public IteratorMerger(Collection<Collection<T>> setOfSet) {
+ final Iterator<Collection<T>> setIter = setOfSet.iterator();
+ init(new Iterator<Iterator<T>>() {
+
+ @Override
+ public boolean hasNext() {
+ return setIter.hasNext();
+ }
+
+ @Override
+ public Iterator<T> next() {
+ return setIter.next().iterator();
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ });
+ }
+
+ private void init(Iterator<Iterator<T>> baseIterators) {
this.baseIterators = baseIterators;
current = baseIterators.next();
}