Author: markt Date: Mon Jul 15 20:11:31 2013 New Revision: 1503448 URL: http://svn.apache.org/r1503448 Log: EL 3.0 collections operations. Implement forEach.
Modified: tomcat/trunk/java/org/apache/el/stream/Stream.java tomcat/trunk/test/org/apache/el/stream/TestCollectionOperations.java Modified: tomcat/trunk/java/org/apache/el/stream/Stream.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/stream/Stream.java?rev=1503448&r1=1503447&r2=1503448&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/el/stream/Stream.java (original) +++ tomcat/trunk/java/org/apache/el/stream/Stream.java Mon Jul 15 20:11:31 2013 @@ -180,6 +180,14 @@ public class Stream { } + public Object forEach(final LambdaExpression le) { + while (iterator.hasNext()) { + le.invoke(iterator.next()); + } + return null; + } + + public Iterator<?> iterator() { return iterator; } Modified: tomcat/trunk/test/org/apache/el/stream/TestCollectionOperations.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/el/stream/TestCollectionOperations.java?rev=1503448&r1=1503447&r2=1503448&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/el/stream/TestCollectionOperations.java (original) +++ tomcat/trunk/test/org/apache/el/stream/TestCollectionOperations.java Mon Jul 15 20:11:31 2013 @@ -211,4 +211,27 @@ public class TestCollectionOperations { Assert.assertEquals(expected, result); } + + + @Test + public void testForEach01() { + ELProcessor processor = new ELProcessor(); + processor.defineBean("beans", beans); + processor.getValue( + "beans.stream().forEach(b->b.setValLong(b.valLong + 1))", + Object.class); + + Assert.assertEquals(2, bean01.getValLong()); + Assert.assertEquals(3, bean02.getValLong()); + Assert.assertEquals(4, bean03.getValLong()); + + // Restore the beans to their default state + processor.getValue( + "beans.stream().forEach(b->b.setValLong(b.valLong - 1))", + Object.class); + + Assert.assertEquals(1, bean01.getValLong()); + Assert.assertEquals(2, bean02.getValLong()); + Assert.assertEquals(3, bean03.getValLong()); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org