Merge "BUG 652 leafref CCE & BUG 720 colons problem"
[controller.git] / opendaylight / netconf / config-netconf-connector / src / main / java / org / opendaylight / controller / netconf / confignetconfconnector / mapping / config / ModuleElementDefinition.java
index 9111701ba01d08e604d255da904846dae202839f..b772eee0d7a9f3b37a5c8854cfe6b9d1650270b2 100644 (file)
@@ -8,10 +8,13 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.config;
 
+import org.opendaylight.controller.netconf.confignetconfconnector.exception.OperationNotPermittedException;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditConfigStrategy;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.EditStrategyType;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.MissingInstanceHandlingStrategy;
 import org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig.NoneEditConfigStrategy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ModuleElementDefinition {
 
@@ -20,13 +23,26 @@ public class ModuleElementDefinition {
 
     private final String instanceName;
     private final EditStrategyType editStrategy;
+    private static final Logger logger = LoggerFactory.getLogger(ModuleElementDefinition.class);
 
     public ModuleElementDefinition(String instanceName, String currentStrategy, EditStrategyType defaultStrategy) {
         this.instanceName = instanceName;
-        if (currentStrategy == null || currentStrategy.isEmpty())
+        if (currentStrategy == null || currentStrategy.isEmpty()) {
             this.editStrategy = defaultStrategy;
-        else
-            this.editStrategy = InstanceConfigElementResolved.parseStrategy(currentStrategy, defaultStrategy);
+        } else {
+            EditStrategyType _edStrategy = null;
+            try {
+                _edStrategy = InstanceConfigElementResolved.parseStrategy(currentStrategy, defaultStrategy);
+            } catch (OperationNotPermittedException e) {
+                _edStrategy = defaultStrategy;
+                logger.warn("Operation not permitted on current strategy {} while default strategy is {}. Element definition strategy set to default.",
+                        currentStrategy,
+                        defaultStrategy,
+                        e);
+            }
+            this.editStrategy = _edStrategy;
+        }
+
     }
 
     public String getInstanceName() {