sal-distributed-datastore: use lambdas
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / entityownership / EntityOwnershipListenerActor.java
index f62f7492f612b464fef2cc67b887ca3421c51173..fbffd5b11a207a0e8906f08b30bd257a470ffe58 100644 (file)
@@ -10,11 +10,10 @@ package org.opendaylight.controller.cluster.datastore.entityownership;
 import akka.actor.Props;
 import akka.japi.Creator;
 import com.google.common.base.Preconditions;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor;
-import org.opendaylight.controller.cluster.datastore.entityownership.messages.EntityOwnershipChanged;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipChange;
+import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener;
 
 /**
  * An actor which is responsible for notifying an EntityOwnershipListener of changes.
@@ -22,41 +21,44 @@ import org.slf4j.LoggerFactory;
  * @author Thomas Pantelis
  */
 class EntityOwnershipListenerActor extends AbstractUntypedActor {
-    private static final Logger LOG = LoggerFactory.getLogger(EntityOwnershipListenerActor.class);
+    private final DOMEntityOwnershipListener listener;
 
-    private final EntityOwnershipListener listener;
-
-    private EntityOwnershipListenerActor(EntityOwnershipListener listener) {
+    private EntityOwnershipListenerActor(DOMEntityOwnershipListener listener) {
         this.listener = listener;
     }
 
     @Override
     protected void handleReceive(Object message) {
-        if(message instanceof EntityOwnershipChanged) {
-            onEntityOwnershipChanged((EntityOwnershipChanged)message);
+        if (message instanceof DOMEntityOwnershipChange) {
+            onEntityOwnershipChanged((DOMEntityOwnershipChange)message);
+        } else {
+            unknownMessage(message);
         }
     }
 
-    private void onEntityOwnershipChanged(EntityOwnershipChanged change) {
+    @SuppressWarnings("checkstyle:IllegalCatch")
+    private void onEntityOwnershipChanged(DOMEntityOwnershipChange change) {
         LOG.debug("Notifying EntityOwnershipListener {}: {}", listener, change);
 
         try {
-            listener.ownershipChanged(change.getEntity(), change.wasOwner(), change.isOwner());
+            listener.ownershipChanged(change);
         } catch (Exception e) {
             LOG.error("Error notifying listener {}", listener, e);
         }
     }
 
-    static Props props(EntityOwnershipListener listener) {
+    static Props props(DOMEntityOwnershipListener listener) {
         return Props.create(new EntityOwnershipListenerCreator(listener));
     }
 
     private static final class EntityOwnershipListenerCreator implements Creator<EntityOwnershipListenerActor> {
         private static final long serialVersionUID = 1L;
 
-        private final EntityOwnershipListener listener;
+        @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but we don't "
+                + "create remote instances of this actor and thus don't need it to be Serializable.")
+        private final DOMEntityOwnershipListener listener;
 
-        EntityOwnershipListenerCreator(EntityOwnershipListener listener) {
+        EntityOwnershipListenerCreator(DOMEntityOwnershipListener listener) {
             this.listener = Preconditions.checkNotNull(listener);
         }