- public void add(Config<T> aConfig) {
- for (Id<T> id : aConfig.map().keySet()) {
- configs.put(id, aConfig.map().get(id));
+ public void addConfig(Config<T> aConfig) {
+ notNull("aConfig", aConfig);
+ if (ids.contains(aConfig.getId())) {
+ throw new ConfigException("duplicate id '" +
+ aConfig.getId().toString() + "'");
+ }
+ for (T item : aConfig.values()) {
+ if (valueIds.contains(item.getId())) {
+ throw new ConfigException("duplicate id '" +
+ item.getId().toString() + "'");
+ }
+ }
+
+ ids.add(aConfig.getId());
+ for (T item : aConfig.values()) {
+ valueIds.add(item.getId());
+ values.add(item);