Refactor Register*ListenerReply classes
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / RegisterChangeListener.java
index db8a08f11a96f520457707b5b20aad5abf692ec1..d83ff2483a099c1b5c1e635ea78d91e680adc4f8 100644 (file)
@@ -9,55 +9,46 @@
 package org.opendaylight.controller.cluster.datastore.messages;
 
 import akka.actor.ActorPath;
-import akka.actor.ActorSystem;
-import org.opendaylight.controller.cluster.datastore.utils.InstanceIdentifierUtils;
+import akka.actor.ActorRef;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
-import org.opendaylight.controller.protobuff.messages.registration.ListenerRegistrationMessages;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
-public class RegisterChangeListener implements SerializableMessage {
-  public static final Class SERIALIZABLE_CLASS = ListenerRegistrationMessages.RegisterChangeListener.class;
-    private final InstanceIdentifier path;
-    private final ActorPath dataChangeListenerPath;
+public class RegisterChangeListener implements ListenerRegistrationMessage {
+    private final YangInstanceIdentifier path;
+    private final ActorRef dataChangeListenerActor;
     private final AsyncDataBroker.DataChangeScope scope;
+    private final boolean registerOnAllInstances;
 
-
-    public RegisterChangeListener(InstanceIdentifier path,
-        ActorPath dataChangeListenerPath,
-        AsyncDataBroker.DataChangeScope scope) {
+    public RegisterChangeListener(YangInstanceIdentifier path, ActorRef dataChangeListenerActor,
+            AsyncDataBroker.DataChangeScope scope, boolean registerOnAllInstances) {
         this.path = path;
-        this.dataChangeListenerPath = dataChangeListenerPath;
+        this.dataChangeListenerActor = dataChangeListenerActor;
         this.scope = scope;
+        this.registerOnAllInstances = registerOnAllInstances;
     }
 
-    public InstanceIdentifier getPath() {
+    @Override
+    public YangInstanceIdentifier getPath() {
         return path;
     }
 
-
     public AsyncDataBroker.DataChangeScope getScope() {
         return scope;
     }
 
-    public ActorPath getDataChangeListenerPath() {
-        return dataChangeListenerPath;
+    @Override
+    public ActorPath getListenerActorPath() {
+        return dataChangeListenerActor.path();
     }
 
-
     @Override
-    public ListenerRegistrationMessages.RegisterChangeListener toSerializable() {
-      return ListenerRegistrationMessages.RegisterChangeListener.newBuilder()
-          .setInstanceIdentifierPath(path.toString())
-          .setDataChangeListenerActorPath(dataChangeListenerPath.toString())
-          .setDataChangeScope(scope.ordinal()).build();
+    public boolean isRegisterOnAllInstances() {
+        return registerOnAllInstances;
     }
 
-  public static RegisterChangeListener fromSerializable(ActorSystem actorSystem,Object serializable){
-    ListenerRegistrationMessages.RegisterChangeListener o = (ListenerRegistrationMessages.RegisterChangeListener) serializable;
-    return new RegisterChangeListener(InstanceIdentifierUtils.from(o.getInstanceIdentifierPath()),
-                                                actorSystem.actorFor(o.getDataChangeListenerActorPath()).path(),
-                                              AsyncDataBroker.DataChangeScope.values()[o.getDataChangeScope()]);
-  }
-
-
+    @Override
+    public String toString() {
+        return "RegisterChangeListener [path=" + path + ", scope=" + scope + ", registerOnAllInstances="
+                + registerOnAllInstances + ", dataChangeListenerActor=" + dataChangeListenerActor + "]";
+    }
 }