First version after introduction of meaningful ids and Identifiable interface.
[xmlrouter] / impl / src / main / java / org / wamblee / xmlrouter / impl / XMLRouterConfigService.java
index 230a6dcf6d8bfc06e77efcca22dff88374833808..054956df0a0e6d8255119298fb751e9fd9ed23d7 100644 (file)
@@ -15,6 +15,7 @@
  */
 package org.wamblee.xmlrouter.impl;
 
+import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.wamblee.xmlrouter.common.Id;
@@ -37,8 +38,8 @@ public class XMLRouterConfigService implements RouterConfigService {
     public XMLRouterConfigService(XMLRouterConfiguration aConfig) {
         sequence = new AtomicLong(1L);
         config = aConfig;
-        routerConfigs = new ConfigImpl<RouterConfig>(sequence) {
-            public RouterConfig wrap(Id<RouterConfig> aId, RouterConfig aT) {
+        routerConfigs = new ConfigImpl<RouterConfig>(new Id<Config>("config")) {
+            public RouterConfig wrap(RouterConfig aT) {
                 return aT;
             }
         };
@@ -46,18 +47,18 @@ public class XMLRouterConfigService implements RouterConfigService {
 
     @Override
     public RouterConfig emptyConfig() {
-        return new SingleRouterConfig(sequence);
+        // TODO check and document API impacts.
+        String id = UUID.randomUUID().toString();
+        return new SingleRouterConfig(new Id<RouterConfig>(id));
     }
 
     @Override
-    public Id<RouterConfig> apply(RouterConfig aConfig,
-        Id<RouterConfig> aOldConfig) {
+    public void apply(RouterConfig aConfig, Id<RouterConfig> aOldConfig) {
         if (aOldConfig != null) {
             routerConfigs.remove(aOldConfig);
         }
-        Id<RouterConfig> id = routerConfigs.add(aConfig);
+        routerConfigs.add(aConfig);
         update();
-        return id;
     }
 
     @Override
@@ -68,7 +69,7 @@ public class XMLRouterConfigService implements RouterConfigService {
 
     private void update() {
         ExtendedRouterConfig newconfig = new CompositeRouterConfig(
-            routerConfigs.map().values());
+            new Id<RouterConfig>("routerconfig"), routerConfigs.values());
         config.setRouterConfig(newconfig);
     }