Merge "Clean up overlong start method in Activator"
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronCRUDInterfaces.java
1 /*
2  * Copyright IBM Corporation, 2013.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.neutron.spi;
10
11 import org.osgi.framework.BundleContext;
12 import org.osgi.framework.FrameworkUtil;
13 import org.osgi.framework.ServiceReference;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
16
17 public class NeutronCRUDInterfaces {
18     private static final Logger LOGGER = LoggerFactory
19             .getLogger(NeutronCRUDInterfaces.class);
20
21     private INeutronNetworkCRUD networkInterface;
22     private INeutronSubnetCRUD subnetInterface;
23     private INeutronPortCRUD portInterface;
24     private INeutronRouterCRUD routerInterface;
25     private INeutronFloatingIPCRUD fipInterface;
26     private INeutronSecurityGroupCRUD sgInterface;
27     private INeutronSecurityRuleCRUD srInterface;
28     private INeutronFirewallCRUD fwInterface;
29     private INeutronFirewallPolicyCRUD fwpInterface;
30     private INeutronFirewallRuleCRUD fwrInterface;
31     private INeutronLoadBalancerCRUD lbInterface;
32     private INeutronLoadBalancerPoolCRUD lbpInterface;
33     private INeutronLoadBalancerListenerCRUD lblInterface;
34     private INeutronLoadBalancerHealthMonitorCRUD lbhmInterface;
35     private INeutronLoadBalancerPoolMemberCRUD lbpmInterface;
36     private INeutronMeteringLabelCRUD mlInterface;
37     private INeutronMeteringLabelRuleCRUD mlrInterface;
38     private INeutronVPNIKEPolicyCRUD ikepInterface;
39     private INeutronVPNIPSECPolicyCRUD ipsecpInterface;
40     private INeutronVPNServiceCRUD vpnInterface;
41     private INeutronVPNIPSECSiteConnectionsCRUD ipsecScInterface;
42
43     public NeutronCRUDInterfaces() {
44     }
45
46     public INeutronNetworkCRUD getNetworkInterface() {
47         return networkInterface;
48     }
49
50     public INeutronSubnetCRUD getSubnetInterface() {
51         return subnetInterface;
52     }
53
54     public INeutronPortCRUD getPortInterface() {
55         return portInterface;
56     }
57
58     public INeutronRouterCRUD getRouterInterface() {
59         return routerInterface;
60     }
61
62     public INeutronFloatingIPCRUD getFloatingIPInterface() {
63         return fipInterface;
64     }
65
66     public INeutronSecurityGroupCRUD getSecurityGroupInterface() {
67         return sgInterface;
68     }
69
70     public INeutronSecurityRuleCRUD getSecurityRuleInterface() {
71         return srInterface;
72     }
73
74     public INeutronFirewallCRUD getFirewallInterface() {
75         return fwInterface;
76     }
77
78     public INeutronFirewallPolicyCRUD getFirewallPolicyInterface() {
79         return fwpInterface;
80     }
81
82     public INeutronFirewallRuleCRUD getFirewallRuleInterface() {
83         return fwrInterface;
84     }
85
86     public INeutronLoadBalancerCRUD getLoadBalancerInterface() {
87         return lbInterface;
88     }
89
90     public INeutronLoadBalancerPoolCRUD getLoadBalancerPoolInterface() {
91         return lbpInterface;
92     }
93
94     public INeutronLoadBalancerListenerCRUD getLoadBalancerListenerInterface() {
95         return lblInterface;
96     }
97
98     public INeutronLoadBalancerHealthMonitorCRUD getLoadBalancerHealthMonitorInterface() {
99         return lbhmInterface;
100     }
101
102     public INeutronLoadBalancerPoolMemberCRUD getLoadBalancerPoolMemberInterface() {
103         return lbpmInterface;
104     }
105
106     public INeutronMeteringLabelCRUD getMeteringLabelInterface() {
107         return mlInterface;
108     }
109
110     public INeutronMeteringLabelRuleCRUD getMeteringLabelRuleInterface() {
111         return mlrInterface;
112     }
113
114     public INeutronVPNIKEPolicyCRUD getVPNIKEPolicyInterface() {
115         return ikepInterface;
116     }
117
118     public INeutronVPNIPSECPolicyCRUD getVPNIPSECPolicyInterface() {
119         return ipsecpInterface;
120     }
121
122     public void setVPNServiceInterface(INeutronVPNServiceCRUD iface) {
123         vpnInterface = iface;
124     }
125
126     public INeutronVPNServiceCRUD getVPNServiceInterface() {
127         return vpnInterface;
128     }
129
130     public INeutronVPNIPSECSiteConnectionsCRUD getVPNIPSECSiteConnectionsInterface() {
131         return ipsecScInterface;
132     }
133
134     public NeutronCRUDInterfaces fetchINeutronNetworkCRUD(Object obj) {
135         networkInterface = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, obj);
136         return this;
137     }
138
139     public NeutronCRUDInterfaces fetchINeutronSubnetCRUD(Object obj) {
140         subnetInterface = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, obj);
141         return this;
142     }
143
144     public NeutronCRUDInterfaces fetchINeutronPortCRUD(Object obj) {
145         portInterface = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, obj);
146         return this;
147     }
148
149     public NeutronCRUDInterfaces fetchINeutronRouterCRUD(Object obj) {
150         routerInterface = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, obj);
151         return this;
152     }
153
154     public NeutronCRUDInterfaces fetchINeutronFloatingIPCRUD(Object obj) {
155         fipInterface = (INeutronFloatingIPCRUD) getInstances(INeutronFloatingIPCRUD.class, obj);
156         return this;
157     }
158
159     public NeutronCRUDInterfaces fetchINeutronSecurityGroupCRUD(Object obj) {
160         sgInterface = (INeutronSecurityGroupCRUD) getInstances(INeutronSecurityGroupCRUD.class, obj);
161         return this;
162     }
163
164     public NeutronCRUDInterfaces fetchINeutronSecurityRuleCRUD(Object obj) {
165         srInterface = (INeutronSecurityRuleCRUD) getInstances(INeutronSecurityRuleCRUD.class, obj);
166         return this;
167     }
168
169     public NeutronCRUDInterfaces fetchINeutronFirewallCRUD(Object obj) {
170         fwInterface = (INeutronFirewallCRUD) getInstances(INeutronFirewallCRUD.class, obj);
171         return this;
172     }
173
174     public NeutronCRUDInterfaces fetchINeutronFirewallPolicyCRUD(Object obj) {
175         fwpInterface = (INeutronFirewallPolicyCRUD) getInstances(INeutronFirewallPolicyCRUD.class, obj);
176         return this;
177     }
178
179     public NeutronCRUDInterfaces fetchINeutronFirewallRuleCRUD(Object obj) {
180         fwrInterface = (INeutronFirewallRuleCRUD) getInstances(INeutronFirewallRuleCRUD.class, obj);
181         return this;
182     }
183
184     public NeutronCRUDInterfaces fetchINeutronLoadBalancerCRUD(Object obj) {
185         lbInterface = (INeutronLoadBalancerCRUD) getInstances(INeutronLoadBalancerCRUD.class, obj);
186         return this;
187     }
188
189     public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolCRUD(Object obj) {
190         lbpInterface = (INeutronLoadBalancerPoolCRUD) getInstances(INeutronLoadBalancerPoolCRUD.class, obj);
191         return this;
192     }
193
194     public NeutronCRUDInterfaces fetchINeutronLoadBalancerListenerCRUD(Object obj) {
195         lblInterface = (INeutronLoadBalancerListenerCRUD) getInstances(INeutronLoadBalancerListenerCRUD.class, obj);
196         return this;
197     }
198
199     public NeutronCRUDInterfaces fetchINeutronLoadBalancerHealthMonitorCRUD(Object obj) {
200         lbhmInterface = (INeutronLoadBalancerHealthMonitorCRUD) getInstances(INeutronLoadBalancerHealthMonitorCRUD.class, obj);
201         return this;
202     }
203
204     public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolMemberCRUD(Object obj) {
205         lbpmInterface = (INeutronLoadBalancerPoolMemberCRUD) getInstances(INeutronLoadBalancerPoolMemberCRUD.class, obj);
206         return this;
207     }
208
209     public NeutronCRUDInterfaces fetchINeutronMeteringLabelCRUD(Object obj) {
210         mlInterface = (INeutronMeteringLabelCRUD) getInstances(INeutronMeteringLabelCRUD.class, obj);
211         return this;
212     }
213
214     public NeutronCRUDInterfaces fetchINeutronMeteringLabelRuleCRUD(Object obj) {
215         mlrInterface = (INeutronMeteringLabelRuleCRUD) getInstances(INeutronMeteringLabelRuleCRUD.class, obj);
216         return this;
217     }
218
219     public NeutronCRUDInterfaces fetchINeutronVPNIKEPolicyCRUD(Object obj) {
220         ikepInterface = (INeutronVPNIKEPolicyCRUD) getInstances(INeutronVPNIKEPolicyCRUD.class, obj);
221         return this;
222     }
223
224     public NeutronCRUDInterfaces fetchINeutronVPNIPSECPolicyCRUD(Object obj) {
225         ipsecpInterface = (INeutronVPNIPSECPolicyCRUD) getInstances(INeutronVPNIPSECPolicyCRUD.class, obj);
226         return this;
227     }
228
229     public NeutronCRUDInterfaces fetchINeutronVPNServiceCRUD(Object obj) {
230         vpnInterface = (INeutronVPNServiceCRUD) getInstances(INeutronVPNServiceCRUD.class, obj);
231         return this;
232     }
233
234     public NeutronCRUDInterfaces fetchINeutronVPNIPSECSiteConnectionsCRUD(Object obj) {
235         ipsecScInterface = (INeutronVPNIPSECSiteConnectionsCRUD) getInstances(INeutronVPNIPSECSiteConnectionsCRUD.class, obj);
236         return this;
237     }
238
239     public Object getInstances(Class<?> clazz, Object bundle) {
240         try {
241             BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass()).getBundleContext();
242
243             ServiceReference<?>[] services = null;
244             services = bCtx.getServiceReferences(clazz.getName(), null);
245             if (services != null) {
246                 return bCtx.getService(services[0]);
247             }
248         } catch (Exception e) {
249             LOGGER.error("Error in getInstances", e);
250         }
251         return null;
252     }
253 }