You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2011/04/19 02:18:43 UTC

svn commit: r1094829 - /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java

Author: hlship
Date: Tue Apr 19 00:18:43 2011
New Revision: 1094829

URL: http://svn.apache.org/viewvc?rev=1094829&view=rev
Log:
TAP5-1508: Change ComponentPageelementImpl to use a simple List of child ComponentPageElements, rather than a Map or NamedSet

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java?rev=1094829&r1=1094828&r2=1094829&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java Tue Apr 19 00:18:43 2011
@@ -511,7 +511,7 @@ public class ComponentPageElementImpl ex
 
     private BlockImpl bodyBlock;
 
-    private NamedSet<ComponentPageElement> children;
+    private List<ComponentPageElement> children;
 
     private final String elementName;
 
@@ -713,18 +713,19 @@ public class ComponentPageElementImpl ex
     void addEmbeddedElement(ComponentPageElement child)
     {
         if (children == null)
-            children = NamedSet.create();
+            children = CollectionFactory.newList();
 
         String childId = child.getId();
 
-        if (!children.putIfNew(childId, child))
+        for (ComponentPageElement existing : children)
         {
-            ComponentPageElement existing = children.get(childId);
-
-            throw new TapestryException(StructureMessages.duplicateChildComponent(this, childId), child,
-                    new TapestryException(StructureMessages.originalChildComponent(this, childId,
-                            existing.getLocation()), existing, null));
+            if (existing.getId().equalsIgnoreCase(childId))
+                throw new TapestryException(StructureMessages.duplicateChildComponent(this, childId), child,
+                        new TapestryException(StructureMessages.originalChildComponent(this, childId,
+                                existing.getLocation()), existing, null));
         }
+
+        children.add(child);
     }
 
     public void addMixin(String mixinId, Instantiator instantiator, String... order)
@@ -897,11 +898,31 @@ public class ComponentPageElementImpl ex
 
     public ComponentPageElement getEmbeddedElement(String embeddedId)
     {
-        ComponentPageElement embeddedElement = NamedSet.get(children, embeddedId);
+        ComponentPageElement embeddedElement = null;
+
+        if (children != null)
+        {
+            for (ComponentPageElement child : children)
+            {
+                if (child.getId().equalsIgnoreCase(embeddedId))
+                {
+                    embeddedElement = child;
+                    break;
+                }
+            }
+        }
 
         if (embeddedElement == null)
         {
-            Set<String> ids = NamedSet.getNames(children);
+            Set<String> ids = CollectionFactory.newSet();
+
+            if (children != null)
+            {
+                for (ComponentPageElement child : children)
+                {
+                    ids.add(child.getId());
+                }
+            }
 
             throw new UnknownValueException(String.format("Component %s does not contain embedded component '%s'.",
                     getCompleteId(), embeddedId), new AvailableValues("Embedded components", ids));