+ public Map<String, Boolean> getPeerVotingStates() {
+ return peerVotingStates;
+ }
+
+ public String getCustomRaftPolicyClassName() {
+ return customRaftPolicyClassName;
+ }
+
+ public abstract static class AbstractBuilder<B extends AbstractBuilder<B, T>, T extends OnDemandRaftState> {
+ @SuppressWarnings("unchecked")
+ protected B self() {
+ return (B) this;
+ }
+
+ protected abstract @NonNull OnDemandRaftState state();
+
+ public B lastLogIndex(long value) {
+ state().lastLogIndex = value;
+ return self();
+ }
+
+ public B lastLogTerm(long value) {
+ state().lastLogTerm = value;
+ return self();
+ }
+
+ public B currentTerm(long value) {
+ state().currentTerm = value;
+ return self();
+ }