- // Suppressing this warning as we can't set serialVersionUID to maintain backwards compatibility.
- @SuppressWarnings("serial")
- @Deprecated
- static class UpdateElectionTerm implements Serializable {
- private final long currentTerm;
- private final String votedFor;
-
- public UpdateElectionTerm(long currentTerm, String votedFor) {
- this.currentTerm = currentTerm;
- this.votedFor = votedFor;
- }
-
- public long getCurrentTerm() {
- return currentTerm;
- }
-
- public String getVotedFor() {
- return votedFor;
- }
- }
-
- private static class BehaviorStateHolder {
- private RaftActorBehavior behavior;
- private String lastValidLeaderId;
- private short leaderPayloadVersion;
-
- void init(RaftActorBehavior behavior) {
- this.behavior = behavior;
- this.leaderPayloadVersion = behavior != null ? behavior.getLeaderPayloadVersion() : -1;
-
- String behaviorLeaderId = behavior != null ? behavior.getLeaderId() : null;
- if(behaviorLeaderId != null) {
- this.lastValidLeaderId = behaviorLeaderId;
- }
+ private static final class SimpleBehaviorState extends BehaviorState {
+ private final RaftActorBehavior behavior;
+ private final String lastValidLeaderId;
+ private final String lastLeaderId;
+ private final short leaderPayloadVersion;
+
+ SimpleBehaviorState(final String lastValidLeaderId, final String lastLeaderId,
+ final RaftActorBehavior behavior) {
+ this.lastValidLeaderId = lastValidLeaderId;
+ this.lastLeaderId = lastLeaderId;
+ this.behavior = Preconditions.checkNotNull(behavior);
+ this.leaderPayloadVersion = behavior.getLeaderPayloadVersion();