You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by sd...@apache.org on 2015/12/04 22:41:48 UTC
svn commit: r1718040 - in /velocity/engine/branches/1.x:
src/java/org/apache/velocity/util/introspection/UberspectImpl.java
velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/UberspectImplTestCase.java
Author: sdumitriu
Date: Fri Dec 4 21:41:48 2015
New Revision: 1718040
URL: http://svn.apache.org/viewvc?rev=1718040&view=rev
Log:
VELOCITY-871: #foreach should work over any Iterable class
Done
Modified:
velocity/engine/branches/1.x/src/java/org/apache/velocity/util/introspection/UberspectImpl.java
velocity/engine/branches/1.x/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/UberspectImplTestCase.java
Modified: velocity/engine/branches/1.x/src/java/org/apache/velocity/util/introspection/UberspectImpl.java
URL: http://svn.apache.org/viewvc/velocity/engine/branches/1.x/src/java/org/apache/velocity/util/introspection/UberspectImpl.java?rev=1718040&r1=1718039&r2=1718040&view=diff
==============================================================================
--- velocity/engine/branches/1.x/src/java/org/apache/velocity/util/introspection/UberspectImpl.java (original)
+++ velocity/engine/branches/1.x/src/java/org/apache/velocity/util/introspection/UberspectImpl.java Fri Dec 4 21:41:48 2015
@@ -111,9 +111,9 @@ public class UberspectImpl implements Ub
{
return new ArrayIterator(obj);
}
- else if (obj instanceof Collection)
+ else if (obj instanceof Iterable)
{
- return ((Collection) obj).iterator();
+ return ((Iterable) obj).iterator();
}
else if (obj instanceof Map)
{
Modified: velocity/engine/branches/1.x/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/UberspectImplTestCase.java
URL: http://svn.apache.org/viewvc/velocity/engine/branches/1.x/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/UberspectImplTestCase.java?rev=1718040&r1=1718039&r2=1718040&view=diff
==============================================================================
--- velocity/engine/branches/1.x/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/UberspectImplTestCase.java (original)
+++ velocity/engine/branches/1.x/velocity-engine-core/src/test/java/org/apache/velocity/test/util/introspection/UberspectImplTestCase.java Fri Dec 4 21:41:48 2015
@@ -85,6 +85,16 @@ public class UberspectImplTestCase exten
Velocity.evaluate(context, writer, "test", "#foreach($i in $publicMethod)$i#end");
assertEquals(writer.toString(), "123");
}
+
+ public void testIterableForeach()
+ {
+ VelocityContext context = new VelocityContext();
+ context.put("iterable", new SomeIterable());
+ StringWriter writer = new StringWriter();
+
+ Velocity.evaluate(context, writer, "test", "#foreach($i in $iterable)$i#end");
+ assertEquals(writer.toString(), "123");
+ }
private class PrivateClass
{
@@ -106,6 +116,14 @@ public class UberspectImplTestCase exten
{
public Iterator iterator()
{
+ return Arrays.asList("1", "2", "3").iterator();
+ }
+ }
+
+ public class SomeIterable implements Iterable
+ {
+ public Iterator iterator()
+ {
return Arrays.asList("1", "2", "3").iterator();
}
}