Make Netty-3 dependency optional
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / messages / AbstractServerChangeReply.java
index 49bd94e6c436af1abd157fbcee9c802880abcc7c..d37b52cc69eb0f1f4dc4cf118234e5d95c7e5985 100644 (file)
@@ -7,38 +7,43 @@
  */
 package org.opendaylight.controller.cluster.raft.messages;
 
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.MoreObjects;
 import java.io.Serializable;
+import java.util.Optional;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
 
 /**
  * Abstract base class for a server configuration change reply.
  *
  * @author Thomas Pantelis
  */
-public class AbstractServerChangeReply implements Serializable {
+public abstract class AbstractServerChangeReply implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private final String leaderHint;
     private final ServerChangeStatus status;
 
-    public AbstractServerChangeReply(ServerChangeStatus status, String leaderHint) {
-        this.status = status;
+    AbstractServerChangeReply(final @NonNull ServerChangeStatus status, final @Nullable String leaderHint) {
+        this.status = requireNonNull(status);
         this.leaderHint = leaderHint;
     }
 
-    public static long getSerialversionuid() {
-        return serialVersionUID;
-    }
-
-    public String getLeaderHint() {
-        return leaderHint;
+    @VisibleForTesting
+    public final @NonNull Optional<String> getLeaderHint() {
+        return Optional.ofNullable(leaderHint);
     }
 
-    public ServerChangeStatus getStatus() {
+    public final @NonNull ServerChangeStatus getStatus() {
         return status;
     }
 
     @Override
-    public String toString() {
-        return getClass().getSimpleName() + " [status=" + status + ", leaderHint=" + leaderHint + "]";
+    public final String toString() {
+        return MoreObjects.toStringHelper(getClass()).omitNullValues()
+            .add("status", status).add("leaderHint", leaderHint).toString();
     }
 }