Improve segmented journal actor metrics
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / ShardLeaderStateChanged.java
index d9a55ab1e98e7c0f752e73035d8f25494e9f34d1..c92670c97138c66060be1d149a0f15a213f4828c 100644 (file)
@@ -7,11 +7,12 @@
  */
 package org.opendaylight.controller.cluster.datastore.messages;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import javax.annotation.Nonnull;
+import static java.util.Objects.requireNonNull;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.controller.cluster.notifications.LeaderStateChanged;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
+import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree;
 
 /**
  * A local message derived from LeaderStateChanged containing additional Shard-specific info that is sent
@@ -20,17 +21,22 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
  *
  * @author Thomas Pantelis
  */
-public class ShardLeaderStateChanged extends LeaderStateChanged {
+public final class ShardLeaderStateChanged extends LeaderStateChanged {
+    private final @Nullable ReadOnlyDataTree localShardDataTree;
 
-    private final Optional<DataTree> localShardDataTree;
+    public ShardLeaderStateChanged(final @NonNull String memberId, final @Nullable String leaderId,
+            final @NonNull ReadOnlyDataTree localShardDataTree, final short leaderPayloadVersion) {
+        super(memberId, leaderId, leaderPayloadVersion);
+        this.localShardDataTree = requireNonNull(localShardDataTree);
+    }
 
-    public ShardLeaderStateChanged(@Nonnull String memberId, @Nonnull String leaderId,
-            @Nonnull Optional<DataTree> localShardDataTree) {
-        super(memberId, leaderId);
-        this.localShardDataTree = Preconditions.checkNotNull(localShardDataTree);
+    public ShardLeaderStateChanged(final @NonNull String memberId, final @Nullable String leaderId,
+            final short leaderPayloadVersion) {
+        super(memberId, leaderId, leaderPayloadVersion);
+        localShardDataTree = null;
     }
 
-    public @Nonnull Optional<DataTree> getLocalShardDataTree() {
+    public @Nullable ReadOnlyDataTree localShardDataTree() {
         return localShardDataTree;
     }
 }