Config no longer implements Identifiable because this was in violation of the contrac...
[xmlrouter] / impl / src / main / java / org / wamblee / xmlrouter / impl / CompositeRouterConfig.java
index 5ba6571aee1d302d1e655e280552733c197d202f..2b578bdf2c5a2208482b38f1c47aa2ddf3339e97 100644 (file)
@@ -17,29 +17,37 @@ package org.wamblee.xmlrouter.impl;
 
 import java.util.Collection;
 
-import org.wamblee.xmlrouter.config.Config;
+import org.wamblee.xmlrouter.common.Id;
 import org.wamblee.xmlrouter.config.DocumentType;
 import org.wamblee.xmlrouter.config.Filter;
-import org.wamblee.xmlrouter.config.RouterConfig;
 import org.wamblee.xmlrouter.config.Transformation;
 
 public class CompositeRouterConfig implements ExtendedRouterConfig {
 
+    private static final Id<RouterConfig> ID = new Id<RouterConfig>(
+        "compositerouterconfig");
     private CompositeConfig<DocumentType> documentTypes;
     private CompositeConfig<Transformation> transformations;
     private CompositeConfig<Filter> filters;
 
-    public CompositeRouterConfig(Collection<RouterConfig> aConfigs) {
-        documentTypes = new CompositeConfig<DocumentType>();
-        transformations = new CompositeConfig<Transformation>();
-        filters = new CompositeConfig<Filter>();
+    public CompositeRouterConfig(Id<RouterConfig> aId,
+        Collection<RouterConfig> aConfigs) {
+        documentTypes = new CompositeConfig<DocumentType>(DocumentType.class);
+        transformations = new CompositeConfig<Transformation>(
+            Transformation.class);
+        filters = new CompositeConfig<Filter>(Filter.class);
         for (RouterConfig config : aConfigs) {
-            documentTypes.add(config.documentTypeConfig());
-            transformations.add(config.transformationConfig());
-            filters.add(config.filterConfig());
+            documentTypes.addConfig(config.documentTypeConfig());
+            transformations.addConfig(config.transformationConfig());
+            filters.addConfig(config.filterConfig());
         }
     }
 
+    @Override
+    public Id<RouterConfig> getId() {
+        return ID;
+    }
+
     @Override
     public Config<DocumentType> documentTypeConfig() {
         return documentTypes;