package org.opendaylight.controller.sal.compatibility; import java.util.List; import org.opendaylight.controller.sal.binding.api.data.DataChangeListener; import org.opendaylight.controller.sal.binding.api.data.DataProviderService; import org.opendaylight.controller.sal.inventory.IPluginOutInventoryService; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class InventoryNotificationProvider implements AutoCloseable{ private ListenerRegistration nodeConnectorDataChangeListenerRegistration; private NodeConnectorDataChangeListener nodeConnectorDataChangeListener; private DataProviderService dataProviderService; private List inventoryPublisher; private final static Logger LOG = LoggerFactory.getLogger(NodeConnectorDataChangeListener.class); public void start(){ LOG.info("InventoryNotificationProvider started"); if(dataProviderService != null && inventoryPublisher!= null){ if(nodeConnectorDataChangeListener == null){ InstanceIdentifier nodeConnectorPath = InstanceIdentifier.builder(Nodes.class).child(Node.class).child(NodeConnector.class).build(); nodeConnectorDataChangeListener = new NodeConnectorDataChangeListener(); nodeConnectorDataChangeListener.setInventoryPublisher(inventoryPublisher); nodeConnectorDataChangeListenerRegistration = dataProviderService.registerDataChangeListener(nodeConnectorPath, nodeConnectorDataChangeListener); } } } @Override public void close() throws Exception { if(nodeConnectorDataChangeListenerRegistration != null){ nodeConnectorDataChangeListenerRegistration.close(); } } public void setDataProviderService(DataProviderService dataProviderService) { this.dataProviderService = dataProviderService; } public void setInventoryPublisher(List inventoryPublisher) { this.inventoryPublisher = inventoryPublisher; } }