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