Reduce JSR305 proliferation
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / persisted / ServerConfigurationPayload.java
index 0f206b5d39d5b70f314801919f05292c683fa245..055984229bc2920a5cf1be0d609e2c8d12e0e53d 100644 (file)
@@ -8,15 +8,17 @@
 package org.opendaylight.controller.cluster.raft.persisted;
 
 import com.google.common.collect.ImmutableList;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.ByteArrayOutputStream;
 import java.io.Externalizable;
 import java.io.IOException;
 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;
@@ -27,7 +29,7 @@ import org.slf4j.LoggerFactory;
  *
  * @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;
 
@@ -72,31 +74,17 @@ public final class ServerConfigurationPayload extends Payload implements Persist
     private static final Logger LOG = LoggerFactory.getLogger(ServerConfigurationPayload.class);
     private static final long serialVersionUID = 1L;
 
+    @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but this class "
+            + "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(final @Nonnull List<ServerInfo> serverConfig, boolean migrated) {
+    public ServerConfigurationPayload(final @NonNull List<ServerInfo> serverConfig) {
         this.serverConfig = ImmutableList.copyOf(serverConfig);
-        this.migrated = migrated;
     }
 
-    public ServerConfigurationPayload(final @Nonnull List<ServerInfo> serverConfig) {
-        this(serverConfig, false);
-    }
-
-    @Deprecated
-    public static ServerConfigurationPayload createMigrated(final @Nonnull List<ServerInfo> serverConfig) {
-        return new ServerConfigurationPayload(serverConfig, true);
-    }
-
-    @Deprecated
-    @Override
-    public boolean isMigrated() {
-        return migrated;
-    }
-
-    public @Nonnull List<ServerInfo> getServerConfig() {
+    public @NonNull List<ServerInfo> getServerConfig() {
         return serverConfig;
     }
 
@@ -118,13 +106,35 @@ public final class ServerConfigurationPayload extends Payload implements Persist
         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);
     }
 }