]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc/src/main/java/org/argeo/slc/core/structure/tree/DefaultTreeSAware.java
Simplify structure framework
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / core / structure / tree / DefaultTreeSAware.java
index 0e470f4e18618dc93bb50783a6b974ac2042e50b..10869ce820b95e803cbf2c1aa7676b23bc827783 100644 (file)
@@ -5,6 +5,7 @@ import java.util.Vector;
 \r
 import org.argeo.slc.core.structure.StructureAware;\r
 import org.argeo.slc.core.structure.StructureElement;\r
+import org.argeo.slc.core.structure.StructurePath;\r
 import org.argeo.slc.core.structure.StructureRegistry;\r
 \r
 /**\r
@@ -12,8 +13,9 @@ import org.argeo.slc.core.structure.StructureRegistry;
  * registries, using <code>TreeSPath</code>. Convenient to be wrapped in\r
  * classes which cannot extend it.\r
  */\r
-public class DefaultTreeSAware implements TreeSAware {\r
+public class DefaultTreeSAware implements StructureAware {\r
        private StructureElement element;\r
+       private List<String> names = new Vector<String>();\r
        private List<StructureAware> children = new Vector<StructureAware>();\r
 \r
        public StructureElement getElement() {\r
@@ -24,14 +26,20 @@ public class DefaultTreeSAware implements TreeSAware {
                this.element = element;\r
        }\r
 \r
-       public void onRegister(StructureRegistry registry) {\r
+       public void onRegister(StructureRegistry registry, StructurePath path) {\r
+               int index = 0;\r
                for (StructureAware sAware : children) {\r
-                       registry.register(sAware.getElement());\r
-                       sAware.onRegister(registry);\r
+                       TreeSPath childPath = ((TreeSPath) path).createChild(names\r
+                                       .get(index)\r
+                                       + index);\r
+                       registry.register(childPath, sAware.getElement());\r
+                       sAware.onRegister(registry, childPath);\r
+                       index++;\r
                }\r
        }\r
 \r
-       public void addToPropagationList(StructureAware sAware) {\r
+       public void addToPropagationList(String name, StructureAware sAware) {\r
+               names.add(name);\r
                children.add(sAware);\r
        }\r
 \r