Clean up overlong start method in Activator
[neutron.git] / transcriber / src / main / java / org / opendaylight / neutron / transcriber / NeutronFirewallInterface.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc.
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.transcriber;
10
11 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
12 import org.opendaylight.neutron.spi.INeutronFirewallCRUD;
13 import org.opendaylight.neutron.spi.NeutronFirewall;
14 import org.opendaylight.yangtools.yang.binding.DataObject;
15 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
16 import org.osgi.framework.BundleContext;
17 import org.osgi.framework.ServiceRegistration;
18
19 import org.slf4j.Logger;
20 import org.slf4j.LoggerFactory;
21
22 import java.util.ArrayList;
23 import java.util.HashSet;
24 import java.util.List;
25 import java.util.Map.Entry;
26 import java.util.Set;
27 import java.util.concurrent.ConcurrentHashMap;
28 import java.util.concurrent.ConcurrentMap;
29
30 public class NeutronFirewallInterface extends AbstractNeutronInterface implements INeutronFirewallCRUD {
31
32     private static final Logger LOGGER = LoggerFactory.getLogger(NeutronFirewallInterface.class);
33
34     private ConcurrentMap<String, NeutronFirewall> firewallDB  = new ConcurrentHashMap<String, NeutronFirewall>();
35
36
37     NeutronFirewallInterface(ProviderContext providerContext) {
38         super(providerContext);
39     }
40
41     @Override
42     public boolean neutronFirewallExists(String uuid) {
43         return firewallDB.containsKey(uuid);
44     }
45
46     @Override
47     public NeutronFirewall getNeutronFirewall(String uuid) {
48         if (!neutronFirewallExists(uuid)) {
49             LOGGER.debug("No Firewall Have Been Defined");
50             return null;
51         }
52         return firewallDB.get(uuid);
53     }
54
55     @Override
56     public List<NeutronFirewall> getAllNeutronFirewalls() {
57         Set<NeutronFirewall> allFirewalls = new HashSet<NeutronFirewall>();
58         for (Entry<String, NeutronFirewall> entry : firewallDB.entrySet()) {
59             NeutronFirewall firewall = entry.getValue();
60             allFirewalls.add(firewall);
61         }
62         LOGGER.debug("Exiting getFirewalls, Found {} OpenStackFirewall", allFirewalls.size());
63         List<NeutronFirewall> ans = new ArrayList<NeutronFirewall>();
64         ans.addAll(allFirewalls);
65         return ans;
66     }
67
68     @Override
69     public boolean addNeutronFirewall(NeutronFirewall input) {
70         if (neutronFirewallExists(input.getFirewallUUID())) {
71             return false;
72         }
73         firewallDB.putIfAbsent(input.getFirewallUUID(), input);
74         return true;
75     }
76
77     @Override
78     public boolean removeNeutronFirewall(String uuid) {
79         if (!neutronFirewallExists(uuid)) {
80             return false;
81         }
82         firewallDB.remove(uuid);
83         return true;
84     }
85
86     @Override
87     public boolean updateNeutronFirewall(String uuid, NeutronFirewall delta) {
88         if (!neutronFirewallExists(uuid)) {
89             return false;
90         }
91         NeutronFirewall target = firewallDB.get(uuid);
92         return overwrite(target, delta);
93     }
94
95     @Override
96     public boolean neutronFirewallInUse(String firewallUUID) {
97         return !neutronFirewallExists(firewallUUID);
98     }
99
100     @Override
101     protected InstanceIdentifier createInstanceIdentifier(DataObject item) {
102         // TODO Auto-generated method stub
103         return null;
104     }
105
106     @Override
107     protected DataObject toMd(Object neutronObject) {
108         // TODO Auto-generated method stub
109         return null;
110     }
111
112     @Override
113     protected DataObject toMd(String uuid) {
114         // TODO Auto-generated method stub
115         return null;
116     }
117
118     public static void registerNewInterface(BundleContext context,
119                                             ProviderContext providerContext,
120                                             List<ServiceRegistration<?>> registrations) throws Exception {
121         NeutronFirewallInterface neutronFirewallInterface = new NeutronFirewallInterface(providerContext);
122         ServiceRegistration<INeutronFirewallCRUD> neutronFirewallInterfaceRegistration = context.registerService(INeutronFirewallCRUD.class, neutronFirewallInterface, null);
123         if(neutronFirewallInterfaceRegistration != null) {
124             registrations.add(neutronFirewallInterfaceRegistration);
125         }
126     }
127 }