1 package org.opendaylight.controller.sal.compatibility;
5 import org.opendaylight.controller.sal.binding.api.data.DataChangeListener;
6 import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
7 import org.opendaylight.controller.sal.inventory.IPluginOutInventoryService;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
11 import org.opendaylight.yangtools.concepts.ListenerRegistration;
12 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
16 public class InventoryNotificationProvider implements AutoCloseable{
18 private ListenerRegistration<DataChangeListener> nodeConnectorDataChangeListenerRegistration;
20 private NodeConnectorDataChangeListener nodeConnectorDataChangeListener;
22 private DataProviderService dataProviderService;
24 private List<IPluginOutInventoryService> inventoryPublisher;
26 private final static Logger LOG = LoggerFactory.getLogger(NodeConnectorDataChangeListener.class);
30 LOG.info("InventoryNotificationProvider started");
32 if(dataProviderService != null
33 && inventoryPublisher!= null){
35 if(nodeConnectorDataChangeListener == null){
36 InstanceIdentifier<NodeConnector> nodeConnectorPath = InstanceIdentifier.builder(Nodes.class).child(Node.class).child(NodeConnector.class).build();
37 nodeConnectorDataChangeListener = new NodeConnectorDataChangeListener();
38 nodeConnectorDataChangeListener.setInventoryPublisher(inventoryPublisher);
39 nodeConnectorDataChangeListenerRegistration = dataProviderService.registerDataChangeListener(nodeConnectorPath, nodeConnectorDataChangeListener);
46 public void close() throws Exception {
47 if(nodeConnectorDataChangeListenerRegistration != null){
48 nodeConnectorDataChangeListenerRegistration.close();
52 public void setDataProviderService(DataProviderService dataProviderService) {
53 this.dataProviderService = dataProviderService;
56 public void setInventoryPublisher(List<IPluginOutInventoryService> inventoryPublisher) {
57 this.inventoryPublisher = inventoryPublisher;