import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload;
import org.opendaylight.controller.cluster.raft.protobuff.client.messages.PersistentPayload;
import org.slf4j.Logger;
*
* @author Thomas Pantelis
*/
-public final class ServerConfigurationPayload extends Payload implements PersistentPayload, MigratedSerializable {
+public final class ServerConfigurationPayload extends Payload implements PersistentPayload, Serializable {
private static final class Proxy implements Externalizable {
private static final long serialVersionUID = 1L;
+ "implements writeReplace to delegate serialization to a Proxy class and thus instances of this class "
+ "aren't serialized. FindBugs does not recognize this.")
private final List<ServerInfo> serverConfig;
- private final boolean migrated;
private int serializedSize = -1;
- private ServerConfigurationPayload(@Nonnull final List<ServerInfo> serverConfig, boolean migrated) {
+ public ServerConfigurationPayload(final @NonNull List<ServerInfo> serverConfig) {
this.serverConfig = ImmutableList.copyOf(serverConfig);
- this.migrated = migrated;
}
- public ServerConfigurationPayload(@Nonnull final List<ServerInfo> serverConfig) {
- this(serverConfig, false);
- }
-
- @Deprecated
- public static ServerConfigurationPayload createMigrated(@Nonnull final List<ServerInfo> serverConfig) {
- return new ServerConfigurationPayload(serverConfig, true);
- }
-
- @Deprecated
- @Override
- public boolean isMigrated() {
- return migrated;
- }
-
- @Nonnull
- public List<ServerInfo> getServerConfig() {
+ public @NonNull List<ServerInfo> getServerConfig() {
return serverConfig;
}
return serializedSize;
}
+ @Override
+ public int hashCode() {
+ return serverConfig.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+
+ if (obj == null) {
+ return false;
+ }
+
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+
+ ServerConfigurationPayload other = (ServerConfigurationPayload) obj;
+ return serverConfig.equals(other.serverConfig);
+ }
+
@Override
public String toString() {
return "ServerConfigurationPayload [serverConfig=" + serverConfig + "]";
}
- @Override
- public Object writeReplace() {
+ private Object writeReplace() {
return new Proxy(this);
}
}