BUG-5280: implement message queueing
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / PrimaryShardInfo.java
index bbeb1aa84bbe728ffe073e9a3cc5402161fde676..27d247512ca0b37349e0686955d449fc0dcd1dbd 100644 (file)
@@ -8,8 +8,8 @@
 package org.opendaylight.controller.cluster.datastore.messages;
 
 import akka.actor.ActorSelection;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
 
@@ -20,13 +20,22 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
  */
 public class PrimaryShardInfo {
     private final ActorSelection primaryShardActor;
-    private final Optional<DataTree> localShardDataTree;
+    private final short primaryShardVersion;
+    private final DataTree localShardDataTree;
 
-    public PrimaryShardInfo(@Nonnull ActorSelection primaryShardActor, @Nonnull Optional<DataTree> localShardDataTree) {
+    public PrimaryShardInfo(@Nonnull ActorSelection primaryShardActor, short primaryShardVersion,
+            @Nonnull DataTree localShardDataTree) {
         this.primaryShardActor = Preconditions.checkNotNull(primaryShardActor);
+        this.primaryShardVersion = primaryShardVersion;
         this.localShardDataTree = Preconditions.checkNotNull(localShardDataTree);
     }
 
+    public PrimaryShardInfo(@Nonnull ActorSelection primaryShardActor, short primaryShardVersion) {
+        this.primaryShardActor = Preconditions.checkNotNull(primaryShardActor);
+        this.primaryShardVersion = primaryShardVersion;
+        this.localShardDataTree = null;
+    }
+
     /**
      * Returns an ActorSelection representing the primary shard actor.
      */
@@ -34,11 +43,18 @@ public class PrimaryShardInfo {
         return primaryShardActor;
     }
 
+    /**
+     * Returns the version of the primary shard.
+     */
+    public short getPrimaryShardVersion() {
+        return primaryShardVersion;
+    }
+
     /**
      * Returns an Optional whose value contains the primary shard's DataTree if the primary shard is local
      * to the caller. Otherwise the Optional value is absent.
      */
     public @Nonnull Optional<DataTree> getLocalShardDataTree() {
-        return localShardDataTree;
+        return Optional.ofNullable(localShardDataTree);
     }
 }