Bug 1062 - Disallow implicit serviceref creation.
[controller.git] / opendaylight / netconf / config-netconf-connector / src / main / java / org / opendaylight / controller / netconf / confignetconfconnector / mapping / config / InstanceConfigElementResolved.java
index e4bd9212e90995ae7515026c49815645afe6ff3e..ef5ba753d320d8198cbe5c1a09925835a4cc8533 100644 (file)
@@ -8,14 +8,13 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config;
 
-import com.google.common.base.Preconditions;
+import java.util.Map;
+import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
+import org.opendaylight.controller.netconf.confignetconfconnector.exception.OperationNotPermittedException;
 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;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditStrategyType;
 
-import java.util.Map;
-
 /**
  * Parsed xml element containing whole configuration for an instance of some
  * module. Contains preferred edit strategy type.
@@ -25,9 +24,10 @@ public class InstanceConfigElementResolved {
     private final EditStrategyType editStrategy;
     private final Map<String, AttributeConfigElement> configuration;
 
-    public InstanceConfigElementResolved(String currentStrategy, Map<String, AttributeConfigElement> configuration, EditStrategyType defaultStrategy) {
-        EditStrategyType valueOf = checkStrategy(currentStrategy, defaultStrategy);
-        this.editStrategy = valueOf;
+    public InstanceConfigElementResolved(String currentStrategy, Map<String, AttributeConfigElement> configuration,
+                                         EditStrategyType defaultStrategy)
+            throws NetconfDocumentedException {
+        this.editStrategy = parseStrategy(currentStrategy, defaultStrategy);
         this.configuration = configuration;
     }
 
@@ -37,19 +37,10 @@ public class InstanceConfigElementResolved {
     }
 
 
-    EditStrategyType checkStrategy(String currentStrategy, EditStrategyType defaultStrategy) {
-        EditStrategyType valueOf = EditStrategyType.valueOf(currentStrategy);
-        if (defaultStrategy.isEnforcing()) {
-            Preconditions
-                    .checkArgument(
-                            valueOf == defaultStrategy,
-                            "With "
-                                    + defaultStrategy
-                                    + " as "
-                                    + EditConfigXmlParser.DEFAULT_OPERATION_KEY
-                                    + " operations on module elements are not permitted since the default option is restrictive");
-        }
-        return valueOf;
+    static EditStrategyType parseStrategy(String currentStrategy, EditStrategyType defaultStrategy) throws OperationNotPermittedException {
+        EditStrategyType parsedStrategy = EditStrategyType.valueOf(currentStrategy);
+        EditStrategyType.compareParsedStrategyToDefaultEnforcing(parsedStrategy,defaultStrategy);
+        return parsedStrategy;
     }