Author: markt Date: Mon Jul 15 20:22:30 2013 New Revision: 1503451 URL: http://svn.apache.org/r1503451 Log: EL 3.0 collections operations. Implement peek.
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=1503451&r1=1503450&r2=1503451&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:22:30 2013 @@ -188,6 +188,22 @@ public class Stream { } + public Stream peek(final LambdaExpression le) { + Iterator<Object> downStream = new OpIterator() { + @Override + protected void findNext() { + if (iterator.hasNext()) { + Object obj = iterator.next(); + le.invoke(obj); + next = obj; + foundNext = true; + } + } + }; + return new Stream(downStream); + } + + 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=1503451&r1=1503450&r2=1503451&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:22:30 2013 @@ -234,4 +234,25 @@ public class TestCollectionOperations { Assert.assertEquals(2, bean02.getValLong()); Assert.assertEquals(3, bean03.getValLong()); } + + + @Test + public void testPeek01() { + ELProcessor processor = new ELProcessor(); + List<TesterBeanA> debug = new ArrayList<>(); + processor.defineBean("beans", beans); + processor.defineBean("debug", debug); + + Object result = processor.getValue( + "beans.stream().peek(b->debug.add(b)).toList()", + Object.class); + + List<TesterBeanA> expected = new ArrayList<>(3); + expected.add(bean01); + expected.add(bean02); + expected.add(bean03); + + Assert.assertEquals(expected, result); + Assert.assertEquals(expected, debug); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org