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();
 	}