*/
package org.opendaylight.controller.cluster.raft.messages;
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.collect.ImmutableSet;
import java.io.Serializable;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
/**
* Message sent to change the raft voting status for servers.
private static final long serialVersionUID = 1L;
private final Map<String, Boolean> serverVotingStatusMap;
+ private final Collection<String> serversVisited;
+
+ public ChangeServersVotingStatus(@NonNull Map<String, Boolean> serverVotingStatusMap) {
+ this(serverVotingStatusMap, ImmutableSet.of());
+ }
- public ChangeServersVotingStatus(@Nonnull Map<String, Boolean> serverVotingStatusMap) {
- this.serverVotingStatusMap = new HashMap<>(Preconditions.checkNotNull(serverVotingStatusMap));
+ public ChangeServersVotingStatus(@NonNull Map<String, Boolean> serverVotingStatusMap,
+ @NonNull Collection<String> serversVisited) {
+ this.serverVotingStatusMap = new HashMap<>(requireNonNull(serverVotingStatusMap));
+ this.serversVisited = ImmutableSet.copyOf(requireNonNull(serversVisited));
}
- public Map<String, Boolean> getServerVotingStatusMap() {
+ public @NonNull Map<String, Boolean> getServerVotingStatusMap() {
return serverVotingStatusMap;
}
+ public @NonNull Collection<String> getServersVisited() {
+ return serversVisited;
+ }
+
@Override
public String toString() {
- return "ChangeServersVotingStatus [serverVotingStatusMap=" + serverVotingStatusMap + "]";
+ return "ChangeServersVotingStatus [serverVotingStatusMap=" + serverVotingStatusMap
+ + (serversVisited != null ? ", serversVisited=" + serversVisited : "") + "]";
}
}