Bug 7521: Convert DatastoreSnapshot.ShardSnapshot to store Snapshot
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / RegisterChangeListener.java
index 0123a701471e29ef5a81ad41dc3fb2304e4cbf62..f5d86984755beada93ae5ec6406545c7e74ee89d 100644 (file)
@@ -8,32 +8,41 @@
 
 package org.opendaylight.controller.cluster.datastore.messages;
 
+import akka.actor.ActorPath;
+import akka.actor.ActorRef;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-
-public class RegisterChangeListener {
-  private final InstanceIdentifier path;
-  private final AsyncDataChangeListener<InstanceIdentifier, NormalizedNode<?, ?>> listener;
-  private final AsyncDataBroker.DataChangeScope scope;
-
-
-  public RegisterChangeListener(InstanceIdentifier path, AsyncDataChangeListener<InstanceIdentifier, NormalizedNode<?, ?>> listener, AsyncDataBroker.DataChangeScope scope) {
-    this.path = path;
-    this.listener = listener;
-    this.scope = scope;
-  }
-
-  public InstanceIdentifier getPath() {
-    return path;
-  }
-
-  public AsyncDataChangeListener<InstanceIdentifier, NormalizedNode<?, ?>> getListener() {
-    return listener;
-  }
-
-  public AsyncDataBroker.DataChangeScope getScope() {
-    return scope;
-  }
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+
+public class RegisterChangeListener implements ListenerRegistrationMessage {
+    private final YangInstanceIdentifier path;
+    private final ActorRef dataChangeListener;
+    private final AsyncDataBroker.DataChangeScope scope;
+    private final boolean registerOnAllInstances;
+
+    public RegisterChangeListener(YangInstanceIdentifier path,
+        ActorRef dataChangeListener,
+        AsyncDataBroker.DataChangeScope scope, boolean registerOnAllInstances) {
+        this.path = path;
+        this.dataChangeListener = dataChangeListener;
+        this.scope = scope;
+        this.registerOnAllInstances = registerOnAllInstances;
+    }
+
+    @Override
+    public YangInstanceIdentifier getPath() {
+        return path;
+    }
+
+    public AsyncDataBroker.DataChangeScope getScope() {
+        return scope;
+    }
+
+    public ActorPath getDataChangeListenerPath() {
+        return dataChangeListener.path();
+    }
+
+    @Override
+    public boolean isRegisterOnAllInstances() {
+        return registerOnAllInstances;
+    }
 }