Config no longer implements Identifiable because this was in violation of the contrac...
[xmlrouter] / impl / src / main / java / org / wamblee / xmlrouter / impl / SingleRouterConfig.java
index a72e9a2294d6c49a4d51c3a621c4f4460ac80d9d..195f72da66295517bce3aec611c3fe05f3fd0cc8 100644 (file)
 package org.wamblee.xmlrouter.impl;
 
 import org.wamblee.xmlrouter.common.Id;
-import org.wamblee.xmlrouter.config.Config;
 import org.wamblee.xmlrouter.config.DocumentType;
 import org.wamblee.xmlrouter.config.Filter;
-import org.wamblee.xmlrouter.config.RouterConfig;
 import org.wamblee.xmlrouter.config.Transformation;
 
 /**
@@ -31,7 +29,7 @@ import org.wamblee.xmlrouter.config.Transformation;
 public class SingleRouterConfig implements ExtendedRouterConfig {
 
     public static final class DocumentConfig extends ConfigImpl<DocumentType> {
-        public DocumentConfig(Id<Config> aId) {
+        public DocumentConfig(String aId) {
             super(DocumentType.class, aId);
         }
 
@@ -47,7 +45,7 @@ public class SingleRouterConfig implements ExtendedRouterConfig {
 
     public static final class TransformationConfig extends
         ConfigImpl<Transformation> {
-        public TransformationConfig(Id<Config> aId) {
+        public TransformationConfig(String aId) {
             super(Transformation.class, aId);
         }
 
@@ -62,7 +60,7 @@ public class SingleRouterConfig implements ExtendedRouterConfig {
     }
 
     public static final class FilterConfig extends ConfigImpl<Filter> {
-        public FilterConfig(Id<Config> aId) {
+        public FilterConfig(String aId) {
             super(Filter.class, aId);
         }
 
@@ -76,7 +74,7 @@ public class SingleRouterConfig implements ExtendedRouterConfig {
         }
     }
 
-    private Id<RouterConfig> id;
+    private String prefix;
 
     private DocumentConfig documentTypes;
     private TransformationConfig transformations;
@@ -85,20 +83,18 @@ public class SingleRouterConfig implements ExtendedRouterConfig {
     /**
      * Constructs a router configuration.
      * 
-     * @param aId
+     * @param aPrefix
      *            Unique id for this configuration.
      */
-    public SingleRouterConfig(Id<RouterConfig> aId) {
-        id = aId;
-        documentTypes = new DocumentConfig(new Id<Config>(aId.getId() +
-            ".documenttypes"));
-        transformations = new TransformationConfig(new Id<Config>(aId.getId() +
-            ".transformations"));
-        filters = new FilterConfig(new Id<Config>(aId.getId() + ".filters"));
+    public SingleRouterConfig(String aPrefix) {
+        prefix = aPrefix;
+        documentTypes = new DocumentConfig(aPrefix + ".documenttypes");
+        transformations = new TransformationConfig(aPrefix + ".transformations");
+        filters = new FilterConfig(aPrefix + ".filters");
     }
 
     public SingleRouterConfig(SingleRouterConfig aConfig) {
-        id = aConfig.id;
+        prefix = aConfig.prefix;
         documentTypes = new DocumentConfig(aConfig.documentTypes);
         transformations = new TransformationConfig(aConfig.transformations);
         filters = new FilterConfig(aConfig.filters);
@@ -106,7 +102,11 @@ public class SingleRouterConfig implements ExtendedRouterConfig {
 
     @Override
     public Id<RouterConfig> getId() {
-        return id;
+        return new Id<RouterConfig>(prefix);
+    }
+
+    public String getPrefix() {
+        return prefix;
     }
 
     @Override