added first version of configuraiton api and simple function test.
[xmlrouter] / impl / src / main / java / org / wamblee / xmlrouter / impl / XMLRouterConfigurationImpl.java
index b0b02713017ed583b421b3f96e54c5015fc2bf4a..99db0fd2b65a71b77e0e3eaade316cdbd4bcbf23 100644 (file)
  */
 package org.wamblee.xmlrouter.impl;
 
+import java.util.ArrayList;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
+import org.wamblee.xmlrouter.config.RouterConfig;
+
 /**
  * Implements the XML Router configuration interface including the required
  * locking.
@@ -33,10 +36,13 @@ public class XMLRouterConfigurationImpl implements XMLRouterConfiguration {
     private ExtendedRouterConfig config;
     private TransformationPaths transformations;
 
-    public XMLRouterConfigurationImpl(ExtendedRouterConfig aConfig,
-        TransformationPaths aTransformations) {
+    public XMLRouterConfigurationImpl(ExtendedRouterConfig aConfig) {
         config = aConfig;
-        transformations = aTransformations;
+        transformations = new TransformationPaths();
+    }
+
+    public XMLRouterConfigurationImpl() {
+        this(new CompositeRouterConfig(new ArrayList<RouterConfig>()));
     }
 
     @Override
@@ -60,12 +66,19 @@ public class XMLRouterConfigurationImpl implements XMLRouterConfiguration {
     }
 
     @Override
-    public ExtendedRouterConfig routerConfig() {
+    public ExtendedRouterConfig getRouterConfig() {
         return config;
     }
 
     @Override
-    public TransformationPaths transformations() {
+    public void setRouterConfig(ExtendedRouterConfig aConfig) {
+        config = aConfig;
+        transformations.replaceTransformations(config.transformationConfig()
+            .map());
+    }
+
+    @Override
+    public TransformationPaths getTransformations() {
         return transformations;
     }
 }