Merge changes Ic434bf4a,I05a3fb18,I47a3783d,I8234bbfd
[controller.git] / opendaylight / netconf / config-netconf-connector / src / main / java / org / opendaylight / controller / netconf / confignetconfconnector / operations / editconfig / AbstractEditConfigStrategy.java
index d8ea7d7af7ac955b339d629312d84b98a9fdf617..df4671371d55ef5e06ab3cd29cd13108fd8df08d 100644 (file)
@@ -9,37 +9,40 @@
 package org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig;
 
 import java.util.Map;
-
 import javax.management.InstanceNotFoundException;
 import javax.management.ObjectName;
-
 import org.opendaylight.controller.config.util.ConfigTransactionClient;
+import org.opendaylight.controller.netconf.confignetconfconnector.exception.NetconfConfigHandlingException;
 import org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.fromxml.AttributeConfigElement;
+import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.ServiceRegistryWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public abstract class AbstractEditConfigStrategy implements EditConfigStrategy {
 
-    private static final Logger logger = LoggerFactory.getLogger(AbstractEditConfigStrategy.class);
+    private static final Logger LOG = LoggerFactory.getLogger(AbstractEditConfigStrategy.class);
 
     @Override
     public void executeConfiguration(String module, String instance, Map<String, AttributeConfigElement> configuration,
-            ConfigTransactionClient ta) {
+                                     ConfigTransactionClient ta, ServiceRegistryWrapper services) throws NetconfConfigHandlingException {
 
         try {
             ObjectName on = ta.lookupConfigBean(module, instance);
-            logger.debug("ServiceInstance for {} {} located successfully under {}", module, instance, on);
-            executeStrategy(configuration, ta, on);
+            LOG.debug("ServiceInstance for {} {} located successfully under {}", module, instance, on);
+            executeStrategy(configuration, ta, on, services);
         } catch (InstanceNotFoundException e) {
-            handleMissingInstance(configuration, ta, module, instance);
+            handleMissingInstance(configuration, ta, module, instance, services);
         }
 
     }
 
+    // TODO split missing instances handling strategies from edit config strategies in this hierarchy = REFACTOR
+    // edit configs should not handle missing
+
     abstract void handleMissingInstance(Map<String, AttributeConfigElement> configuration, ConfigTransactionClient ta,
-            String module, String instance);
+                                        String module, String instance, ServiceRegistryWrapper services) throws NetconfConfigHandlingException;
 
     abstract void executeStrategy(Map<String, AttributeConfigElement> configuration, ConfigTransactionClient ta,
-            ObjectName objectName);
+                                  ObjectName objectName, ServiceRegistryWrapper services) throws NetconfConfigHandlingException;
 
 }