Merge "Bug 6641: Fix ip_address in allowed_address_pairs info"
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronCRUDInterfaces.java
index 70685cb4c5ef809557e692798a79f191bbac2b94..49bded4107d78185c0752e9d462ef3bfe5587651 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright IBM Corporation, 2013.  All rights reserved.
+ * Copyright (c) 2013, 2015 IBM Corporation and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
@@ -14,108 +14,69 @@ import org.osgi.framework.ServiceReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class NeutronCRUDInterfaces {
-    private static final Logger logger = LoggerFactory
-            .getLogger(NeutronCRUDInterfaces.class);
+public final class NeutronCRUDInterfaces {
+    private static final Logger LOGGER = LoggerFactory.getLogger(NeutronCRUDInterfaces.class);
 
-    public static INeutronNetworkCRUD getINeutronNetworkCRUD(Object o) {
-        INeutronNetworkCRUD answer = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, o);
-        return answer;
-    }
-
-    public static INeutronSubnetCRUD getINeutronSubnetCRUD(Object o) {
-        INeutronSubnetCRUD answer = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, o);
-        return answer;
-    }
-
-    public static INeutronPortCRUD getINeutronPortCRUD(Object o) {
-        INeutronPortCRUD answer = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, o);
-        return answer;
-    }
-
-    public static INeutronRouterCRUD getINeutronRouterCRUD(Object o) {
-        INeutronRouterCRUD answer = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, o);
-        return answer;
-    }
-
-    public static INeutronFloatingIPCRUD getINeutronFloatingIPCRUD(Object o) {
-        INeutronFloatingIPCRUD answer = (INeutronFloatingIPCRUD) getInstances(INeutronFloatingIPCRUD.class, o);
-        return answer;
-    }
-
-    public static INeutronSecurityGroupCRUD getINeutronSecurityGroupCRUD(Object o) {
-        INeutronSecurityGroupCRUD answer = (INeutronSecurityGroupCRUD) getInstances(INeutronSecurityGroupCRUD.class, o);
-        return answer;
-    }
-
-    public static INeutronSecurityRuleCRUD getINeutronSecurityRuleCRUD(Object o) {
-        INeutronSecurityRuleCRUD answer = (INeutronSecurityRuleCRUD) getInstances(INeutronSecurityRuleCRUD.class, o);
-        return answer;
-    }
+    private INeutronNetworkCRUD networkInterface;
+    private INeutronSubnetCRUD subnetInterface;
+    private INeutronPortCRUD portInterface;
+    private INeutronRouterCRUD routerInterface;
 
-    public static INeutronFirewallCRUD getINeutronFirewallCRUD(Object o) {
-        INeutronFirewallCRUD answer = (INeutronFirewallCRUD) getInstances(INeutronFirewallCRUD.class, o);
-        return answer;
+    public NeutronCRUDInterfaces() {
     }
 
-    public static INeutronFirewallPolicyCRUD getINeutronFirewallPolicyCRUD(Object o) {
-        INeutronFirewallPolicyCRUD answer = (INeutronFirewallPolicyCRUD) getInstances(INeutronFirewallPolicyCRUD.class, o);
-        return answer;
+    public INeutronNetworkCRUD getNetworkInterface() {
+        return networkInterface;
     }
 
-    public static INeutronFirewallRuleCRUD getINeutronFirewallRuleCRUD(Object o) {
-        INeutronFirewallRuleCRUD answer = (INeutronFirewallRuleCRUD) getInstances(INeutronFirewallRuleCRUD.class, o);
-        return answer;
+    public INeutronSubnetCRUD getSubnetInterface() {
+        return subnetInterface;
     }
 
-    public static INeutronLoadBalancerCRUD getINeutronLoadBalancerCRUD(Object o) {
-        INeutronLoadBalancerCRUD answer = (INeutronLoadBalancerCRUD) getInstances(INeutronLoadBalancerCRUD.class, o);
-        return answer;
+    public INeutronPortCRUD getPortInterface() {
+        return portInterface;
     }
 
-    public static INeutronLoadBalancerPoolCRUD getINeutronLoadBalancerPoolCRUD(Object o) {
-        INeutronLoadBalancerPoolCRUD answer = (INeutronLoadBalancerPoolCRUD) getInstances(INeutronLoadBalancerPoolCRUD.class, o);
-        return answer;
+    public INeutronRouterCRUD getRouterInterface() {
+        return routerInterface;
     }
 
-    public static INeutronLoadBalancerListenerCRUD getINeutronLoadBalancerListenerCRUD(Object o) {
-        INeutronLoadBalancerListenerCRUD answer = (INeutronLoadBalancerListenerCRUD) getInstances(INeutronLoadBalancerListenerCRUD.class, o);
-        return answer;
+    public NeutronCRUDInterfaces fetchINeutronNetworkCRUD(Object obj) {
+        networkInterface = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, obj);
+        return this;
     }
 
-    public static INeutronLoadBalancerHealthMonitorCRUD getINeutronLoadBalancerHealthMonitorCRUD(Object o) {
-        INeutronLoadBalancerHealthMonitorCRUD answer = (INeutronLoadBalancerHealthMonitorCRUD) getInstances(INeutronLoadBalancerHealthMonitorCRUD.class, o);
-        return answer;
+    public NeutronCRUDInterfaces fetchINeutronSubnetCRUD(Object obj) {
+        subnetInterface = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, obj);
+        return this;
     }
 
-    public static INeutronLoadBalancerPoolMemberCRUD getINeutronLoadBalancerPoolMemberCRUD(Object o) {
-        INeutronLoadBalancerPoolMemberCRUD answer = (INeutronLoadBalancerPoolMemberCRUD) getInstances(INeutronLoadBalancerPoolMemberCRUD.class, o);
-        return answer;
+    public NeutronCRUDInterfaces fetchINeutronPortCRUD(Object obj) {
+        portInterface = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, obj);
+        return this;
     }
 
-    public static INeutronMeteringLabelCRUD getINeutronMeteringLabelCRUD(Object o) {
-        INeutronMeteringLabelCRUD answer = (INeutronMeteringLabelCRUD) getInstances(INeutronMeteringLabelCRUD.class, o);
-        return answer;
+    public NeutronCRUDInterfaces fetchINeutronRouterCRUD(Object obj) {
+        routerInterface = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, obj);
+        return this;
     }
 
-    public static INeutronMeteringLabelRuleCRUD getINeutronMeteringLabelRuleCRUD(Object o) {
-        INeutronMeteringLabelRuleCRUD answer = (INeutronMeteringLabelRuleCRUD) getInstances(INeutronMeteringLabelRuleCRUD.class, o);
-        return answer;
+    public static <T extends INeutronObject<T>, I extends INeutronCRUD<T>> I fetchINeutronCRUD(
+        Class<I> cls, Object obj) {
+        return (I) getInstances(cls, obj);
     }
 
-    public static Object getInstances(Class<?> clazz,Object bundle) {
+    public static Object getInstances(Class<?> clazz, Object bundle) {
         try {
-            BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass())
-                    .getBundleContext();
+            BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass()).getBundleContext();
 
             ServiceReference<?>[] services = null;
-                services = bCtx.getServiceReferences(clazz.getName(),
-                        null);
+            services = bCtx.getServiceReferences(clazz.getName(), null);
             if (services != null) {
                 return bCtx.getService(services[0]);
             }
         } catch (Exception e) {
-            logger.error("Instance reference is NULL");
+            LOGGER.error("Error in getInstances", e);
         }
         return null;
     }