Reduce JSR305 proliferation
[controller.git] / opendaylight / md-sal / sal-clustering-commons / src / main / java / org / opendaylight / controller / cluster / notifications / LeaderStateChanged.java
index ec35b03b0a5956176aeafadbdaa56fa990e23699..caa1a8debf53911bd2193c085c36a64a5aea2117 100644 (file)
@@ -7,37 +7,43 @@
  */
 package org.opendaylight.controller.cluster.notifications;
 
-import java.io.Serializable;
+import static java.util.Objects.requireNonNull;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
 
 /**
- * A message initiated internally from the RaftActor when some state of a leader has changed
+ * A local message initiated internally from the RaftActor when some state of a leader has changed.
  *
  * @author Thomas Pantelis
  */
-public class LeaderStateChanged implements Serializable {
-    private static final long serialVersionUID = 1L;
-
+public class LeaderStateChanged {
     private final String memberId;
     private final String leaderId;
+    private final short leaderPayloadVersion;
 
-    public LeaderStateChanged(String memberId, String leaderId) {
-        this.memberId = memberId;
+    public LeaderStateChanged(@NonNull String memberId, @Nullable String leaderId, short leaderPayloadVersion) {
+        this.memberId = requireNonNull(memberId);
         this.leaderId = leaderId;
+        this.leaderPayloadVersion = leaderPayloadVersion;
     }
 
-    public String getMemberId() {
+    public @NonNull String getMemberId() {
         return memberId;
     }
 
-    public String getLeaderId() {
+    public @Nullable String getLeaderId() {
         return leaderId;
     }
 
+    public short getLeaderPayloadVersion() {
+        return leaderPayloadVersion;
+    }
+
     @Override
     public String toString() {
-        StringBuilder builder = new StringBuilder();
-        builder.append("LeaderStateChanged [memberId=").append(memberId).append(", leaderId=").append(leaderId)
-                .append("]");
-        return builder.toString();
+        return "LeaderStateChanged [memberId=" + memberId
+                + ", leaderId=" + leaderId
+                + ", leaderPayloadVersion=" + leaderPayloadVersion + "]";
     }
 }