X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2Fclient%2Fmessages%2FOnDemandRaftState.java;h=9bbee881ea4afa3b1b99a772f96c228d9b8246c2;hb=013a6679470bf692753f2e04ab4398c97fd9f5d0;hp=8c2986f6d19f402137d40efd551667b22a28c151;hpb=79c3fb9269d9baeb3a2787544fca3636e0ea608f;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/OnDemandRaftState.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/OnDemandRaftState.java index 8c2986f6d1..9bbee881ea 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/OnDemandRaftState.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/OnDemandRaftState.java @@ -7,12 +7,14 @@ */ package org.opendaylight.controller.cluster.raft.client.messages; +import com.google.common.collect.ImmutableMap; import java.util.Collections; import java.util.List; import java.util.Map; +import javax.annotation.Nonnull; /** - * The response to a GetOnDemandRaftState message, + * The response to a GetOnDemandRaftState message. * * @author Thomas Pantelis */ @@ -33,11 +35,14 @@ public class OnDemandRaftState { private String raftState; private String votedFor; private boolean isSnapshotCaptureInitiated; + private String customRaftPolicyClassName; + private boolean isVoting; private List followerInfoList = Collections.emptyList(); private Map peerAddresses = Collections.emptyMap(); + private Map peerVotingStates = Collections.emptyMap(); - private OnDemandRaftState() { + protected OnDemandRaftState() { } public static Builder builder() { @@ -108,6 +113,10 @@ public class OnDemandRaftState { return isSnapshotCaptureInitiated; } + public boolean isVoting() { + return isVoting; + } + public List getFollowerInfoList() { return followerInfoList; } @@ -116,101 +125,139 @@ public class OnDemandRaftState { return peerAddresses; } - public static class Builder { - private final OnDemandRaftState stats = new OnDemandRaftState(); + public Map getPeerVotingStates() { + return peerVotingStates; + } + + public String getCustomRaftPolicyClassName() { + return customRaftPolicyClassName; + } + + public abstract static class AbstractBuilder> { + @SuppressWarnings("unchecked") + protected T self() { + return (T) this; + } + + @Nonnull + protected abstract OnDemandRaftState state(); + + public T lastLogIndex(long value) { + state().lastLogIndex = value; + return self(); + } + + public T lastLogTerm(long value) { + state().lastLogTerm = value; + return self(); + } + + public T currentTerm(long value) { + state().currentTerm = value; + return self(); + } - public Builder lastLogIndex(long value) { - stats.lastLogIndex = value; - return this; + public T commitIndex(long value) { + state().commitIndex = value; + return self(); } - public Builder lastLogTerm(long value) { - stats.lastLogTerm = value; - return this; + public T lastApplied(long value) { + state().lastApplied = value; + return self(); } - public Builder currentTerm(long value) { - stats.currentTerm = value; - return this; + public T lastIndex(long value) { + state().lastIndex = value; + return self(); } - public Builder commitIndex(long value) { - stats.commitIndex = value; - return this; + public T lastTerm(long value) { + state().lastTerm = value; + return self(); } - public Builder lastApplied(long value) { - stats.lastApplied = value; - return this; + public T snapshotIndex(long value) { + state().snapshotIndex = value; + return self(); } - public Builder lastIndex(long value) { - stats.lastIndex = value; - return this; + public T snapshotTerm(long value) { + state().snapshotTerm = value; + return self(); } - public Builder lastTerm(long value) { - stats.lastTerm = value; - return this; + public T replicatedToAllIndex(long value) { + state().replicatedToAllIndex = value; + return self(); } - public Builder snapshotIndex(long value) { - stats.snapshotIndex = value; - return this; + public T inMemoryJournalDataSize(long value) { + state().inMemoryJournalDataSize = value; + return self(); } - public Builder snapshotTerm(long value) { - stats.snapshotTerm = value; - return this; + public T inMemoryJournalLogSize(long value) { + state().inMemoryJournalLogSize = value; + return self(); } - public Builder replicatedToAllIndex(long value) { - stats.replicatedToAllIndex = value; - return this; + public T leader(String value) { + state().leader = value; + return self(); } - public Builder inMemoryJournalDataSize(long value) { - stats.inMemoryJournalDataSize = value; - return this; + public T raftState(String value) { + state().raftState = value; + return self(); } - public Builder inMemoryJournalLogSize(long value) { - stats.inMemoryJournalLogSize = value; - return this; + public T votedFor(String value) { + state().votedFor = value; + return self(); } - public Builder leader(String value) { - stats.leader = value; - return this; + public T isVoting(boolean isVoting) { + state().isVoting = isVoting; + return self(); } - public Builder raftState(String value) { - stats.raftState = value; - return this; + public T followerInfoList(List followerInfoList) { + state().followerInfoList = followerInfoList; + return self(); } - public Builder votedFor(String value) { - stats.votedFor = value; - return this; + public T peerAddresses(Map peerAddresses) { + state().peerAddresses = peerAddresses; + return self(); } - public Builder followerInfoList(List followerInfoList) { - stats.followerInfoList = followerInfoList; - return this; + public T peerVotingStates(Map peerVotingStates) { + state().peerVotingStates = ImmutableMap.copyOf(peerVotingStates); + return self(); } - public Builder peerAddresses(Map peerAddresses) { - stats.peerAddresses = peerAddresses; - return this; + public T isSnapshotCaptureInitiated(boolean value) { + state().isSnapshotCaptureInitiated = value; + return self(); } - public Builder isSnapshotCaptureInitiated(boolean value) { - stats.isSnapshotCaptureInitiated = value; - return this; + public T customRaftPolicyClassName(String className) { + state().customRaftPolicyClassName = className; + return self(); } public OnDemandRaftState build() { - return stats; + return state(); + } + } + + public static class Builder extends AbstractBuilder { + private final OnDemandRaftState state = new OnDemandRaftState(); + + @Override + protected OnDemandRaftState state() { + return state; } } }