You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2010/05/28 03:20:43 UTC

svn commit: r949060 - in /tapestry/tapestry5/trunk/tapestry-ioc/src: main/java/org/apache/tapestry5/func/Flow.java main/java/org/apache/tapestry5/func/FlowImpl.java test/java/org/apache/tapestry5/func/FuncTest.java

Author: hlship
Date: Fri May 28 01:20:43 2010
New Revision: 949060

URL: http://svn.apache.org/viewvc?rev=949060&view=rev
Log:
Change Flow to extend the Iterable interface

Modified:
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/Flow.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/FlowImpl.java
    tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/func/FuncTest.java

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/Flow.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/Flow.java?rev=949060&r1=949059&r2=949060&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/Flow.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/Flow.java Fri May 28 01:20:43 2010
@@ -25,7 +25,7 @@ import java.util.List;
  * 
  * @since 5.2.0
  */
-public interface Flow<T>
+public interface Flow<T> extends Iterable<T>
 {
     /** Maps a Flow into a new Flow with different type values. */
     <X> Flow<X> map(Mapper<T, X> mapper);

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/FlowImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/FlowImpl.java?rev=949060&r1=949059&r2=949060&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/FlowImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/func/FlowImpl.java Fri May 28 01:20:43 2010
@@ -18,6 +18,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
@@ -187,4 +188,11 @@ class FlowImpl<T> implements Flow<T>
         return new FlowImpl<T>(newValues);
     }
 
+    public Iterator<T> iterator()
+    {
+        // Kind of inefficient but it works.
+
+        return toList().iterator();
+    }
+
 }

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/func/FuncTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/func/FuncTest.java?rev=949060&r1=949059&r2=949060&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/func/FuncTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/func/FuncTest.java Fri May 28 01:20:43 2010
@@ -392,4 +392,19 @@ public class FuncTest extends TestUtils
 
         flow.sort();
     }
+
+    @Test
+    public void flows_are_iterable()
+    {
+        Flow<Integer> flow = F.flow(1, 3, 5, 7);
+
+        int total = 0;
+
+        for (int i : flow)
+        {
+            total += i;
+        }
+
+        assertEquals(total, 16);
+    }
 }