*/
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 + "]";
}
}