SDNC-12 refactoring to support easy mocking
[sdnc/core.git] / sli / provider / src / main / java / org / openecomp / sdnc / sli / provider / SvcLogicNodeExecutor.java
index de969de..0c8166a 100644 (file)
 
 package org.openecomp.sdnc.sli.provider;
 
+import org.openecomp.sdnc.sli.SvcLogicAdaptor;
 import org.openecomp.sdnc.sli.SvcLogicContext;
 import org.openecomp.sdnc.sli.SvcLogicException;
+import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
 import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.openecomp.sdnc.sli.SvcLogicRecorder;
+import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.openecomp.sdnc.sli.SvcLogicStore;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public abstract class SvcLogicNodeExecutor {
        
        public abstract SvcLogicNode execute(SvcLogicServiceImpl svc, SvcLogicNode node, SvcLogicContext ctx) throws SvcLogicException;
 
+    private static final Logger LOG = LoggerFactory.getLogger(SvcLogicNodeExecutor.class);
 
-       protected String evaluateNodeTest(SvcLogicNode node, SvcLogicContext ctx)
+    protected String evaluateNodeTest(SvcLogicNode node, SvcLogicContext ctx)
                        throws SvcLogicException {
                if (node == null) {
                        return null;
@@ -40,4 +51,60 @@ public abstract class SvcLogicNodeExecutor {
                                node, ctx));
 
        }
+       
+    protected SvcLogicStore getStore() throws SvcLogicException {
+        return SvcLogicActivator.getStore();
+    }
+    
+    protected SvcLogicAdaptor getAdaptor(String adaptorName) {
+        return SvcLogicAdaptorFactory.getInstance(adaptorName);
+    }
+    
+    protected SvcLogicResource getSvcLogicResource(String plugin) {
+        BundleContext bctx = FrameworkUtil.getBundle(this.getClass())
+                .getBundleContext();
+
+        ServiceReference sref = bctx.getServiceReference(plugin);
+        if (sref != null) {
+            SvcLogicResource resourcePlugin = (SvcLogicResource) bctx
+                    .getService(sref);
+            return resourcePlugin;
+        }
+        else {
+            LOG.warn("Could not find service reference object for plugin " + plugin);
+            return null;
+        }
+    }
+    
+    protected SvcLogicRecorder getSvcLogicRecorder(String plugin) {
+        BundleContext bctx = FrameworkUtil.getBundle(this.getClass())
+                .getBundleContext();
+
+        ServiceReference sref = bctx.getServiceReference(plugin);
+        if (sref != null) {
+            SvcLogicRecorder resourcePlugin = (SvcLogicRecorder) bctx
+                    .getService(sref);
+            return resourcePlugin;
+        }
+        else {
+            return null;
+        }
+    }
+    
+    protected SvcLogicJavaPlugin getSvcLogicJavaPlugin(String pluginName){
+        BundleContext bctx = FrameworkUtil.getBundle(this.getClass())
+                 .getBundleContext();
+
+         ServiceReference sref = bctx.getServiceReference(pluginName);
+
+         if (sref == null) {
+             LOG.warn("Could not find service reference object for plugin " + pluginName);
+             return null;
+         } else {
+             SvcLogicJavaPlugin plugin  = (SvcLogicJavaPlugin) bctx
+                     .getService(sref);
+             return plugin;
+         }
+ }
+    
 }