import java.util.ArrayList;
import java.util.concurrent.locks.ReentrantReadWriteLock;
-import org.wamblee.xmlrouter.config.RouterConfig;
+import org.wamblee.general.Pair;
+import org.wamblee.xmlrouter.common.Id;
/**
* Implements the XML Router configuration interface including the required
public XMLRouterConfigurationImpl(ExtendedRouterConfig aConfig) {
config = aConfig;
transformations = new TransformationPaths(config.transformationConfig()
- .map());
+ .values());
}
public XMLRouterConfigurationImpl() {
- this(new CompositeRouterConfig(new ArrayList<RouterConfig>()));
+ this(new CompositeRouterConfig(new Id<RouterConfig>("routerconfig"),
+ new ArrayList<RouterConfig>()));
}
@Override
- public void startPublishEvent() {
+ public Pair<ExtendedRouterConfig, TransformationPaths> getConfig() {
rlock.lock();
- }
-
- @Override
- public void endPublishEvent() {
- rlock.unlock();
- }
-
- @Override
- public ExtendedRouterConfig getRouterConfig() {
- return config;
+ try {
+ return new Pair<ExtendedRouterConfig, TransformationPaths>(config,
+ transformations);
+ } finally {
+ rlock.unlock();
+ }
}
@Override
public void setRouterConfig(ExtendedRouterConfig aConfig) {
TransformationPaths newTransformations = new TransformationPaths(
- aConfig.transformationConfig().map());
+ aConfig.transformationConfig().values());
wlock.lock();
try {
wlock.unlock();
}
}
-
- @Override
- public TransformationPaths getTransformations() {
- return transformations;
- }
}