1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| public class QuorumStats {
private final Provider provider;
public interface Provider {
String UNKNOWN_STATE = "unknown"; String LOOKING_STATE = "leaderelection"; String LEADING_STATE = "leading"; String FOLLOWING_STATE = "following"; String OBSERVING_STATE = "observing"; String[] getQuorumPeers(); String getServerState();
}
protected QuorumStats(Provider provider) { this.provider = provider; }
public String getServerState() { return provider.getServerState(); }
public String[] getQuorumPeers() { return provider.getQuorumPeers(); }
@Override public String toString() { StringBuilder sb = new StringBuilder(super.toString()); String state = getServerState(); if (state.equals(Provider.LEADING_STATE)) { sb.append("Followers:"); for (String f : getQuorumPeers()) { sb.append(" ").append(f); } sb.append("\n"); } else if (state.equals(Provider.FOLLOWING_STATE) || state.equals(Provider.OBSERVING_STATE)) { sb.append("Leader: "); String[] ldr = getQuorumPeers(); if (ldr.length > 0) { sb.append(ldr[0]); } else { sb.append("not connected"); } sb.append("\n"); } return sb.toString(); }
}
|