package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config;
import com.google.common.base.Preconditions;
+import com.google.common.collect.Multimap;
import org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.fromxml.AttributeConfigElement;
import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfigStrategy;
import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfigXmlParser;
private final EditStrategyType editStrategy;
private final Map<String, AttributeConfigElement> configuration;
+ private final Multimap<String, String> providedServices;
- public InstanceConfigElementResolved(String strat, Map<String, AttributeConfigElement> configuration) {
- EditStrategyType valueOf = checkStrategy(strat);
+ public InstanceConfigElementResolved(String currentStrategy, Map<String, AttributeConfigElement> configuration, EditStrategyType defaultStrategy, Multimap<String, String> providedServices) {
+ EditStrategyType valueOf = parseStrategy(currentStrategy, defaultStrategy);
this.editStrategy = valueOf;
this.configuration = configuration;
+ this.providedServices = providedServices;
}
- EditStrategyType checkStrategy(String strat) {
- EditStrategyType valueOf = EditStrategyType.valueOf(strat);
- if (EditStrategyType.defaultStrategy().isEnforcing()) {
+ public InstanceConfigElementResolved(Map<String, AttributeConfigElement> configuration, EditStrategyType defaultStrategy, Multimap<String, String> providedServices) {
+ editStrategy = defaultStrategy;
+ this.configuration = configuration;
+ this.providedServices = providedServices;
+ }
+
+
+ static EditStrategyType parseStrategy(String currentStrategy, EditStrategyType defaultStrategy) {
+ EditStrategyType parsedStrategy = EditStrategyType.valueOf(currentStrategy);
+ if (defaultStrategy.isEnforcing()) {
Preconditions
.checkArgument(
- valueOf == EditStrategyType.defaultStrategy(),
+ parsedStrategy == defaultStrategy,
"With "
- + EditStrategyType.defaultStrategy()
+ + defaultStrategy
+ " as "
+ EditConfigXmlParser.DEFAULT_OPERATION_KEY
+ " operations on module elements are not permitted since the default option is restrictive");
}
- return valueOf;
+ return parsedStrategy;
}
- public InstanceConfigElementResolved(Map<String, AttributeConfigElement> configuration) {
- editStrategy = EditStrategyType.defaultStrategy();
- this.configuration = configuration;
- }
public EditConfigStrategy getEditStrategy() {
- return editStrategy.getFittingStrategy();
+ return editStrategy.getFittingStrategy(providedServices);
}
public Map<String, AttributeConfigElement> getConfiguration() {