*/
package org.opendaylight.controller.cluster.notifications;
-import java.io.Serializable;
+import com.google.common.base.Preconditions;
+import javax.annotation.Nonnull;
+import javax.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 = Preconditions.checkNotNull(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("]");
+ .append(", leaderPayloadVersion=").append(leaderPayloadVersion).append("]");
return builder.toString();
}
}