Author: hlship
Date: Wed May 26 18:14:03 2010
New Revision: 948515

URL: http://svn.apache.org/viewvc?rev=948515&view=rev
Log:
Add reverse() to Flow

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

Modified: 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Flow.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Flow.java?rev=948515&r1=948514&r2=948515&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Flow.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/Flow.java
 Wed May 26 18:14:03 2010
@@ -48,4 +48,7 @@ public interface Flow<T>
 
     /** Converts the Flow into an unmodifiable list of values. */
     List<T> toList();
+
+    /** Returns a new flow with the same elements but in reverse order. */
+    Flow<T> reverse();
 }

Modified: 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/FlowImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/FlowImpl.java?rev=948515&r1=948514&r2=948515&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/FlowImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/util/func/FlowImpl.java
 Wed May 26 18:14:03 2010
@@ -17,6 +17,8 @@ package org.apache.tapestry5.ioc.util.fu
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
+
 class FlowImpl<T> implements Flow<T>
 {
     private final List<T> values;
@@ -58,4 +60,13 @@ class FlowImpl<T> implements Flow<T>
         return Collections.unmodifiableList(values);
     }
 
+    public Flow<T> reverse()
+    {
+        List<T> newValues = CollectionFactory.newList(values);
+
+        Collections.reverse(newValues);
+
+        return new FlowImpl<T>(newValues);
+    }
+
 }

Modified: 
tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java?rev=948515&r1=948514&r2=948515&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/func/FuncTest.java
 Wed May 26 18:14:03 2010
@@ -65,6 +65,12 @@ public class FuncTest extends TestBase
     }
 
     @Test
+    public void flow_reverse()
+    {
+        assertListsEquals(F.flow(1, 2, 3).reverse().toList(), 3, 2, 1);
+    }
+
+    @Test
     public void combine_mappers()
     {
         List<Boolean> even = F.map(stringToLength.combine(toEven), "Mary", 
"had", "a", "little", "lamb");


Reply via email to