Author: hlship
Date: Wed Apr 13 22:23:52 2011
New Revision: 1091955

URL: http://svn.apache.org/viewvc?rev=1091955&view=rev
Log:
TAP5-853: Allow lists in sub-expressions, and get rid of the returned boolean 
from ArrayList.add()

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java?rev=1091955&r1=1091954&r2=1091955&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
 Wed Apr 13 22:23:52 2011
@@ -873,7 +873,8 @@ public class PropertyConduitSourceImpl i
                         return boolean.class;
 
                     case LIST:
-                        throw new RuntimeException("Not yet re-implemented.");
+
+                        return createPlasticListConstructor(builder, node);
 
                     default:
                         throw unexpectedNodeType(node, TRUE, FALSE, INTEGER, 
DECIMAL, STRING, DEREF, SAFEDEREF,
@@ -915,7 +916,7 @@ public class PropertyConduitSourceImpl i
             });
         }
 
-        private void createPlasticListConstructor(InstructionBuilder builder, 
Tree listNode)
+        private Class createPlasticListConstructor(InstructionBuilder builder, 
Tree listNode)
         {
             // First, create an empty instance of ArrayList
 
@@ -933,8 +934,11 @@ public class PropertyConduitSourceImpl i
                 if (expressionType.isPrimitive())
                     builder.boxPrimitive(expressionType.getName());
 
-                builder.invoke(ArrayListMethods.ADD);
+                // Add the value to the array, then pop off the returned 
boolean
+                builder.invoke(ArrayListMethods.ADD).pop();
             }
+
+            return ArrayList.class;
         }
 
         private void createListGetter(Tree node, String rootName)


Reply via email to