Bump upstreams
[lispflowmapping.git] / mappingservice / implementation / src / main / java / org / opendaylight / lispflowmapping / implementation / mdsal / AbstractDataListener.java
index 31319ec3d7a9ff21b7f87d5e6e69d1fcca978629..88ef3aeeade570df5b358387d7fe2af558979b09 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 Cisco Systems, Inc.  All rights reserved.
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
@@ -7,37 +7,41 @@
  */
 package org.opendaylight.lispflowmapping.implementation.mdsal;
 
-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.LogicalDatastoreType;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
+import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yangtools.concepts.Registration;
+import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 /**
  * The superclass for the different MD-SAL data change event listeners.
  *
- * @author Lorand Jakab
- *
  */
-public abstract class AbstractDataListener implements DataChangeListener {
+public abstract class AbstractDataListener<T extends DataObject> implements DataTreeChangeListener<T> {
     private DataBroker broker;
-    private InstanceIdentifier<?> path;
-    private ListenerRegistration<DataChangeListener> registration;
+    private InstanceIdentifier<T> path;
+    private Registration configRegistration;
+    private Registration operRegistration;
 
-    public void registerDataChangeListener() {
-        registration = broker.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION,
-                path, this, DataBroker.DataChangeScope.SUBTREE);
+    void registerDataChangeListener() {
+        configRegistration = broker.registerTreeChangeListener(
+            DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION, path), this);
+        operRegistration = broker.registerTreeChangeListener(
+            DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, path), this);
     }
 
     public void closeDataChangeListener() {
-        registration.close();
+        configRegistration.close();
+        operRegistration.close();
     }
 
-    public void setBroker(DataBroker broker) {
+    void setBroker(DataBroker broker) {
         this.broker = broker;
     }
 
-    void setPath(InstanceIdentifier<?> path) {
+    void setPath(InstanceIdentifier<T> path) {
         this.path = path;
     }
 }