Use Set instead of Map to store listeners 34/29034/1
authoradetalhouet <adetalhouet@inocybe.com>
Fri, 30 Oct 2015 16:16:50 +0000 (12:16 -0400)
committeradetalhouet <adetalhouet@inocybe.com>
Fri, 30 Oct 2015 16:16:50 +0000 (12:16 -0400)
Change-Id: I1099cfef518a77a8cee07570a89ed9b1acdcedce
Signed-off-by: adetalhouet <adetalhouet@inocybe.com>
impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrDataChangeListener.java

index 59d6a8336298c9745cecc8bebf578ba65bba5617..249a6dd192cf9588445927d98351f39b62d64ee0 100644 (file)
@@ -8,15 +8,16 @@
 package org.opendaylight.unimgr.impl;
 
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
 import org.opendaylight.unimgr.api.IUnimgrDataChangeListener;
 import org.opendaylight.unimgr.command.Command;
 import org.opendaylight.unimgr.command.EvcCreateCommand;
@@ -35,26 +36,23 @@ import org.slf4j.LoggerFactory;
 public class UnimgrDataChangeListener  implements IUnimgrDataChangeListener {
 
     private static final Logger LOG = LoggerFactory.getLogger(UnimgrDataChangeListener.class);
-    private Map<String, ListenerRegistration<DataChangeListener>> listeners;
+    private Set<ListenerRegistration<DataChangeListener>> listeners;
     private DataBroker dataBroker;
     private TransactionInvoker invoker;
 
     public UnimgrDataChangeListener(DataBroker dataBroker, TransactionInvoker invoker) {
         this.dataBroker = dataBroker;
         this.invoker = invoker;
-        listeners = new HashMap<String, ListenerRegistration<DataChangeListener>>();
-        ListenerRegistration<DataChangeListener> uniListener = dataBroker.registerDataChangeListener(
+        listeners = new HashSet<ListenerRegistration<DataChangeListener>>();
+        listeners.add(dataBroker.registerDataChangeListener(
                 LogicalDatastoreType.CONFIGURATION, UnimgrMapper.createUniIid()
-                , this, DataChangeScope.SUBTREE);
-        ListenerRegistration<DataChangeListener> evcListener = dataBroker.registerDataChangeListener(
+                , this, DataChangeScope.SUBTREE));
+        listeners.add(dataBroker.registerDataChangeListener(
                 LogicalDatastoreType.CONFIGURATION, UnimgrMapper.createEvcIid()
-                , this, DataChangeScope.SUBTREE);
-        ListenerRegistration<DataChangeListener> ovsdbListener = dataBroker.registerDataChangeListener(
+                , this, DataChangeScope.SUBTREE));
+        listeners.add(dataBroker.registerDataChangeListener(
                 LogicalDatastoreType.OPERATIONAL, UnimgrMapper.getOvsdbTopologyIdentifier()
-                , this, DataChangeScope.SUBTREE);
-        listeners.put("uni", uniListener);
-        listeners.put("evc", evcListener);
-        listeners.put("ovsdb", ovsdbListener);
+                , this, DataChangeScope.SUBTREE));
     }
 
     @Override
@@ -102,10 +100,9 @@ public class UnimgrDataChangeListener  implements IUnimgrDataChangeListener {
     @Override
     public void close() throws Exception {
         LOG.info("UnimgrDataChangeListener stopped.");
-        for (Map.Entry<String, ListenerRegistration<DataChangeListener>> entry : listeners.entrySet()) {
-            ListenerRegistration<DataChangeListener> value = entry.getValue();
-            if (value != null) {
-                value.close();
+        for (ListenerRegistration<DataChangeListener> listener : listeners) {
+            if (listener != null) {
+                listener.close();
             }
         }
     }