add -Xlint:unchecked and -Xlint:deprecation to compiler argument
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronCRUDInterfaces.java
1 /*
2  * Copyright (c) 2013, 2015 IBM Corporation and others.  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 INeutronMeteringLabelCRUD mlInterface;
36     private INeutronMeteringLabelRuleCRUD mlrInterface;
37     private INeutronVPNIKEPolicyCRUD ikepInterface;
38     private INeutronVPNIPSECPolicyCRUD ipsecpInterface;
39     private INeutronVPNServiceCRUD vpnInterface;
40     private INeutronVPNIPSECSiteConnectionsCRUD ipsecScInterface;
41     private INeutronBgpvpnCRUD bgpvpnInterface;
42     private INeutronL2gatewayCRUD l2gatewayInterface;
43     private INeutronL2gatewayConnectionCRUD l2gatewayConnectionInterface;
44     private INeutronSFCFlowClassifierCRUD sfcFlowClassifierInterface;
45     private INeutronSFCPortPairCRUD sfcPortPairInterface;
46     private INeutronSFCPortPairGroupCRUD sfcPortPairGroupInterface;
47     private INeutronSFCPortChainCRUD sfcPortChainInterface;
48
49     public NeutronCRUDInterfaces() {
50     }
51
52     public INeutronNetworkCRUD getNetworkInterface() {
53         return networkInterface;
54     }
55
56     public INeutronSubnetCRUD getSubnetInterface() {
57         return subnetInterface;
58     }
59
60     public INeutronPortCRUD getPortInterface() {
61         return portInterface;
62     }
63
64     public INeutronRouterCRUD getRouterInterface() {
65         return routerInterface;
66     }
67
68     public INeutronFloatingIPCRUD getFloatingIPInterface() {
69         return fipInterface;
70     }
71
72     public INeutronSecurityGroupCRUD getSecurityGroupInterface() {
73         return sgInterface;
74     }
75
76     public INeutronSecurityRuleCRUD getSecurityRuleInterface() {
77         return srInterface;
78     }
79
80     public INeutronFirewallCRUD getFirewallInterface() {
81         return fwInterface;
82     }
83
84     public INeutronFirewallPolicyCRUD getFirewallPolicyInterface() {
85         return fwpInterface;
86     }
87
88     public INeutronFirewallRuleCRUD getFirewallRuleInterface() {
89         return fwrInterface;
90     }
91
92     public INeutronLoadBalancerCRUD getLoadBalancerInterface() {
93         return lbInterface;
94     }
95
96     public INeutronLoadBalancerPoolCRUD getLoadBalancerPoolInterface() {
97         return lbpInterface;
98     }
99
100     public INeutronLoadBalancerListenerCRUD getLoadBalancerListenerInterface() {
101         return lblInterface;
102     }
103
104     public INeutronLoadBalancerHealthMonitorCRUD getLoadBalancerHealthMonitorInterface() {
105         return lbhmInterface;
106     }
107
108     public INeutronMeteringLabelCRUD getMeteringLabelInterface() {
109         return mlInterface;
110     }
111
112     public INeutronMeteringLabelRuleCRUD getMeteringLabelRuleInterface() {
113         return mlrInterface;
114     }
115
116     public INeutronVPNIKEPolicyCRUD getVPNIKEPolicyInterface() {
117         return ikepInterface;
118     }
119
120     public INeutronVPNIPSECPolicyCRUD getVPNIPSECPolicyInterface() {
121         return ipsecpInterface;
122     }
123
124     public INeutronL2gatewayCRUD getL2gatewayInterface() {
125         return l2gatewayInterface;
126     }
127
128     public INeutronL2gatewayConnectionCRUD getL2gatewayConnectionInterface() {
129         return l2gatewayConnectionInterface;
130     }
131
132     public void setVPNServiceInterface(INeutronVPNServiceCRUD iface) {
133         vpnInterface = iface;
134     }
135
136     public INeutronVPNServiceCRUD getVPNServiceInterface() {
137         return vpnInterface;
138     }
139
140     public INeutronVPNIPSECSiteConnectionsCRUD getVPNIPSECSiteConnectionsInterface() {
141         return ipsecScInterface;
142     }
143
144     public INeutronBgpvpnCRUD getBgpvpnInterface() {
145         return bgpvpnInterface;
146     }
147
148     public INeutronSFCFlowClassifierCRUD getSFCFlowClassifierInterface() {
149         return sfcFlowClassifierInterface;
150     }
151
152     public INeutronSFCPortPairCRUD getSFCPortPairInterface() {
153         return sfcPortPairInterface;
154     }
155
156     public INeutronSFCPortPairGroupCRUD getSFCPortPairGroupInterface() {
157         return sfcPortPairGroupInterface;
158     }
159
160     public INeutronSFCPortChainCRUD getSFCPortChainInterface() {
161         return sfcPortChainInterface;
162     }
163
164     public NeutronCRUDInterfaces fetchINeutronNetworkCRUD(Object obj) {
165         networkInterface = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, obj);
166         return this;
167     }
168
169     public NeutronCRUDInterfaces fetchINeutronSubnetCRUD(Object obj) {
170         subnetInterface = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, obj);
171         return this;
172     }
173
174     public NeutronCRUDInterfaces fetchINeutronPortCRUD(Object obj) {
175         portInterface = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, obj);
176         return this;
177     }
178
179     public NeutronCRUDInterfaces fetchINeutronRouterCRUD(Object obj) {
180         routerInterface = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, obj);
181         return this;
182     }
183
184     public NeutronCRUDInterfaces fetchINeutronFloatingIPCRUD(Object obj) {
185         fipInterface = (INeutronFloatingIPCRUD) getInstances(INeutronFloatingIPCRUD.class, obj);
186         return this;
187     }
188
189     public NeutronCRUDInterfaces fetchINeutronSecurityGroupCRUD(Object obj) {
190         sgInterface = (INeutronSecurityGroupCRUD) getInstances(INeutronSecurityGroupCRUD.class, obj);
191         return this;
192     }
193
194     public NeutronCRUDInterfaces fetchINeutronSecurityRuleCRUD(Object obj) {
195         srInterface = (INeutronSecurityRuleCRUD) getInstances(INeutronSecurityRuleCRUD.class, obj);
196         return this;
197     }
198
199     public NeutronCRUDInterfaces fetchINeutronFirewallCRUD(Object obj) {
200         fwInterface = (INeutronFirewallCRUD) getInstances(INeutronFirewallCRUD.class, obj);
201         return this;
202     }
203
204     public NeutronCRUDInterfaces fetchINeutronFirewallPolicyCRUD(Object obj) {
205         fwpInterface = (INeutronFirewallPolicyCRUD) getInstances(INeutronFirewallPolicyCRUD.class, obj);
206         return this;
207     }
208
209     public NeutronCRUDInterfaces fetchINeutronFirewallRuleCRUD(Object obj) {
210         fwrInterface = (INeutronFirewallRuleCRUD) getInstances(INeutronFirewallRuleCRUD.class, obj);
211         return this;
212     }
213
214     public NeutronCRUDInterfaces fetchINeutronLoadBalancerCRUD(Object obj) {
215         lbInterface = (INeutronLoadBalancerCRUD) getInstances(INeutronLoadBalancerCRUD.class, obj);
216         return this;
217     }
218
219     public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolCRUD(Object obj) {
220         lbpInterface = (INeutronLoadBalancerPoolCRUD) getInstances(INeutronLoadBalancerPoolCRUD.class, obj);
221         return this;
222     }
223
224     public NeutronCRUDInterfaces fetchINeutronLoadBalancerListenerCRUD(Object obj) {
225         lblInterface = (INeutronLoadBalancerListenerCRUD) getInstances(INeutronLoadBalancerListenerCRUD.class, obj);
226         return this;
227     }
228
229     public NeutronCRUDInterfaces fetchINeutronLoadBalancerHealthMonitorCRUD(Object obj) {
230         lbhmInterface = (INeutronLoadBalancerHealthMonitorCRUD) getInstances(INeutronLoadBalancerHealthMonitorCRUD.class, obj);
231         return this;
232     }
233
234     public NeutronCRUDInterfaces fetchINeutronMeteringLabelCRUD(Object obj) {
235         mlInterface = (INeutronMeteringLabelCRUD) getInstances(INeutronMeteringLabelCRUD.class, obj);
236         return this;
237     }
238
239     public NeutronCRUDInterfaces fetchINeutronMeteringLabelRuleCRUD(Object obj) {
240         mlrInterface = (INeutronMeteringLabelRuleCRUD) getInstances(INeutronMeteringLabelRuleCRUD.class, obj);
241         return this;
242     }
243
244     public NeutronCRUDInterfaces fetchINeutronVPNIKEPolicyCRUD(Object obj) {
245         ikepInterface = (INeutronVPNIKEPolicyCRUD) getInstances(INeutronVPNIKEPolicyCRUD.class, obj);
246         return this;
247     }
248
249     public NeutronCRUDInterfaces fetchINeutronVPNIPSECPolicyCRUD(Object obj) {
250         ipsecpInterface = (INeutronVPNIPSECPolicyCRUD) getInstances(INeutronVPNIPSECPolicyCRUD.class, obj);
251         return this;
252     }
253
254     public NeutronCRUDInterfaces fetchINeutronVPNServiceCRUD(Object obj) {
255         vpnInterface = (INeutronVPNServiceCRUD) getInstances(INeutronVPNServiceCRUD.class, obj);
256         return this;
257     }
258
259     public NeutronCRUDInterfaces fetchINeutronVPNIPSECSiteConnectionsCRUD(Object obj) {
260         ipsecScInterface = (INeutronVPNIPSECSiteConnectionsCRUD) getInstances(INeutronVPNIPSECSiteConnectionsCRUD.class, obj);
261         return this;
262     }
263
264     public NeutronCRUDInterfaces fetchINeutronBgpvpnCRUD(Object obj) {
265         bgpvpnInterface = (INeutronBgpvpnCRUD) getInstances(INeutronBgpvpnCRUD.class, obj);
266         return this;
267     }
268
269     public NeutronCRUDInterfaces fetchINeutronL2gatewayCRUD(Object obj) {
270         l2gatewayInterface = (INeutronL2gatewayCRUD) getInstances(INeutronL2gatewayCRUD.class, obj);
271         return this;
272     }
273
274     public NeutronCRUDInterfaces fetchINeutronL2gatewayConnectionCRUD(Object obj) {
275         l2gatewayConnectionInterface = (INeutronL2gatewayConnectionCRUD) getInstances(INeutronL2gatewayConnectionCRUD.class, obj);
276         return this;
277     }
278
279     public NeutronCRUDInterfaces fetchINeutronSFCFlowClassifierCRUD (Object obj) {
280         sfcFlowClassifierInterface =
281                 (INeutronSFCFlowClassifierCRUD) getInstances(INeutronSFCFlowClassifierCRUD.class, obj);
282         return this;
283     }
284
285     public NeutronCRUDInterfaces fetchINeutronSFCPortPairCRUD (Object obj) {
286         sfcPortPairInterface =
287                 (INeutronSFCPortPairCRUD) getInstances(INeutronSFCPortPairCRUD.class, obj);
288         return this;
289     }
290
291     public NeutronCRUDInterfaces fetchINeutronSFCPortPairGroupCRUD (Object obj) {
292         sfcPortPairGroupInterface =
293                 (INeutronSFCPortPairGroupCRUD) getInstances(INeutronSFCPortPairGroupCRUD.class, obj);
294         return this;
295     }
296
297     public NeutronCRUDInterfaces fetchINeutronSFCPortChainCRUD (Object obj) {
298         sfcPortChainInterface =
299                 (INeutronSFCPortChainCRUD) getInstances(INeutronSFCPortChainCRUD.class, obj);
300         return this;
301     }
302
303     public Object getInstances(Class<?> clazz, Object bundle) {
304         try {
305             BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass()).getBundleContext();
306
307             ServiceReference<?>[] services = null;
308             services = bCtx.getServiceReferences(clazz.getName(), null);
309             if (services != null) {
310                 return bCtx.getService(services[0]);
311             }
312         } catch (Exception e) {
313             LOGGER.error("Error in getInstances", e);
314         }
315         return null;
316     }
317 }