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");