+ @Override
+ public void updatePeerIds(ServerConfigurationPayload serverConfig){
+
+ Set<String> currentPeers = new HashSet<>(this.getPeerIds());
+ for(ServerInfo server: serverConfig.getServerConfig()) {
+ if(!getId().equals(server.getId())) {
+ VotingState votingState = server.isVoting() ? VotingState.VOTING: VotingState.NON_VOTING;
+ if(!currentPeers.contains(server.getId())) {
+ this.addToPeers(server.getId(), null, votingState);
+ } else {
+ this.getPeerInfo(server.getId()).setVotingState(votingState);
+ currentPeers.remove(server.getId());
+ }
+ }
+ }
+
+ for(String peerIdToRemove: currentPeers) {
+ this.removePeer(peerIdToRemove);
+ }
+ }
+