Merge "BUG-4117: add support for flow old Notif"
[openflowplugin.git] / applications / old-notification-supplier / src / main / java / org / opendaylight / openflowplugin / applications / old / notification / supplier / OldNotifProviderImpl.java
index c974de943c2c42c7e7c13c1305e867301d6f44c2..566abde56c485a9eab5f64eb116162ce3008e615 100644 (file)
@@ -10,10 +10,25 @@ package org.opendaylight.openflowplugin.applications.old.notification.supplier;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.openflowplugin.applications.old.notification.supplier.impl.NodeConnectorNotificationSupplierImpl;
+import org.opendaylight.openflowplugin.applications.old.notification.supplier.impl.NodeNotificationSupplierImpl;
+import org.opendaylight.openflowplugin.applications.old.notification.supplier.impl.item.FlowNotificationSupplierImpl;
 import org.opendaylight.openflowplugin.applications.old.notification.supplier.tools.OldNotifProviderConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowAdded;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowRemoved;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowUpdated;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRemoved;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRemoved;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdated;
 
 /**
  * Provider Implementation
@@ -26,6 +41,9 @@ public class OldNotifProviderImpl implements OldNotifProvider {
 
     /* Supplier List property help for easy close method implementation and testing */
     private List<OldNotifSupplierDefinition<?>> supplierList;
+    private OldNotifSupplierForItemRoot<FlowCapableNode, NodeUpdated, NodeRemoved> nodeSupp;
+    private OldNotifSupplierForItemRoot<FlowCapableNodeConnector, NodeConnectorUpdated, NodeConnectorRemoved> connectorSupp;
+    private OldNotifSupplierForItem<Flow, FlowAdded, FlowUpdated, FlowRemoved> flowSupp;
 
     /**
      * Provider constructor set all needed final parameters
@@ -43,6 +61,11 @@ public class OldNotifProviderImpl implements OldNotifProvider {
 
     @Override
     public void start() {
+        nodeSupp = new NodeNotificationSupplierImpl(nps, db);
+        connectorSupp = new NodeConnectorNotificationSupplierImpl(nps, db);
+        flowSupp = config.isFlowSupport() ? new FlowNotificationSupplierImpl(nps, db) : null;
+
+        supplierList = new ArrayList<>(Arrays.asList(nodeSupp, connectorSupp, flowSupp));
     }
 
     @Override