You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ba...@apache.org on 2008/03/19 04:43:21 UTC

svn commit: r638693 - in /commons/proper/collections/trunk/src: java/org/apache/commons/collections/iterators/CollatingIterator.java test/org/apache/commons/collections/iterators/TestCollatingIterator.java

Author: bayard
Date: Tue Mar 18 20:43:19 2008
New Revision: 638693

URL: http://svn.apache.org/viewvc?rev=638693&view=rev
Log:
Applying Fredrik Kjellberg's patch that adds getIteratorIndex() as per COLLECTIONS-289

Modified:
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/CollatingIterator.java
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestCollatingIterator.java

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/CollatingIterator.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/CollatingIterator.java?rev=638693&r1=638692&r2=638693&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/CollatingIterator.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/iterators/CollatingIterator.java Tue Mar 18 20:43:19 2008
@@ -253,6 +253,20 @@
         it.remove();
     }
 
+    /**
+     * Returns the index of the iterator that returned the last element.
+     * 
+     * @return the index of the iterator that returned the last element
+     * @throws IllegalStateException if there is no last returned element
+     */
+    public int getIteratorIndex() {
+        if (lastReturned == -1) {
+            throw new IllegalStateException("No value has been returned yet");
+        }
+        
+        return lastReturned;
+    }
+    
     // Private Methods
     // -------------------------------------------------------------------
     /** 

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestCollatingIterator.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestCollatingIterator.java?rev=638693&r1=638692&r2=638693&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestCollatingIterator.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/iterators/TestCollatingIterator.java Tue Mar 18 20:43:19 2008
@@ -104,6 +104,7 @@
         for(int i=0;i<evens.size();i++) {
             assertTrue(iter.hasNext());
             assertEquals(evens.get(i),iter.next());
+            assertEquals(0,iter.getIteratorIndex());
         }
         assertTrue(!iter.hasNext());
     }
@@ -113,6 +114,7 @@
         for(int i=0;i<20;i++) {
             assertTrue(iter.hasNext());
             assertEquals(new Integer(i),iter.next());
+            assertEquals(i % 2,iter.getIteratorIndex());
         }
         assertTrue(!iter.hasNext());
     }
@@ -122,6 +124,7 @@
         for(int i=0;i<20;i++) {
             assertTrue(iter.hasNext());
             assertEquals(new Integer(i),iter.next());
+            assertEquals((i % 2) == 0 ? 1 : 0,iter.getIteratorIndex());
         }
         assertTrue(!iter.hasNext());
     }
@@ -133,8 +136,10 @@
         for(int i=0;i<evens.size();i++) {
             assertTrue(iter.hasNext());
             assertEquals(evens.get(i),iter.next());
+            assertEquals(0,iter.getIteratorIndex());
             assertTrue(iter.hasNext());
             assertEquals(evens.get(i),iter.next());
+            assertEquals(1,iter.getIteratorIndex());
         }
         assertTrue(!iter.hasNext());
     }
@@ -147,33 +152,61 @@
         iter.addIterator(odds.iterator());
         
         assertEquals(new Integer(0),iter.next());  // even   0
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(1),iter.next());  // fib    1
+        assertEquals(0,iter.getIteratorIndex());
         assertEquals(new Integer(1),iter.next());  // fib    1
+        assertEquals(0,iter.getIteratorIndex());
         assertEquals(new Integer(1),iter.next());  // odd    1
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(2),iter.next());  // fib    2
+        assertEquals(0,iter.getIteratorIndex());
         assertEquals(new Integer(2),iter.next());  // even   2
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(3),iter.next());  // fib    3
+        assertEquals(0,iter.getIteratorIndex());
         assertEquals(new Integer(3),iter.next());  // odd    3
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(4),iter.next());  // even   4
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(5),iter.next());  // fib    5
+        assertEquals(0,iter.getIteratorIndex());
         assertEquals(new Integer(5),iter.next());  // odd    5
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(6),iter.next());  // even   6
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(7),iter.next());  // odd    7
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(8),iter.next());  // fib    8
+        assertEquals(0,iter.getIteratorIndex());
         assertEquals(new Integer(8),iter.next());  // even   8
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(9),iter.next());  // odd    9
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(10),iter.next()); // even  10
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(11),iter.next()); // odd   11
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(12),iter.next()); // even  12
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(13),iter.next()); // fib   13
+        assertEquals(0,iter.getIteratorIndex());
         assertEquals(new Integer(13),iter.next()); // odd   13
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(14),iter.next()); // even  14
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(15),iter.next()); // odd   15
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(16),iter.next()); // even  16
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(17),iter.next()); // odd   17
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(18),iter.next()); // even  18
+        assertEquals(1,iter.getIteratorIndex());
         assertEquals(new Integer(19),iter.next()); // odd   19
+        assertEquals(2,iter.getIteratorIndex());
         assertEquals(new Integer(21),iter.next()); // fib   21
+        assertEquals(0,iter.getIteratorIndex());
 
         assertTrue(!iter.hasNext());
     }