*/
package org.wamblee.xmlrouter.impl;
+import java.util.UUID;
import java.util.concurrent.atomic.AtomicLong;
import org.wamblee.xmlrouter.common.Id;
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;
}
};
@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
private void update() {
ExtendedRouterConfig newconfig = new CompositeRouterConfig(
- routerConfigs.map().values());
+ new Id<RouterConfig>("routerconfig"), routerConfigs.values());
config.setRouterConfig(newconfig);
}