Further Guava Optional cleanups
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / persisted / SimpleReplicatedLogEntry.java
index 5edd2ed5358dd19a7137d522cdbb67a6989c5717..14ce5420d26081c06eed9a442e3dd39287c1c730 100644 (file)
@@ -13,6 +13,7 @@ import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.io.Serializable;
 import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry;
 import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload;
 
@@ -21,7 +22,7 @@ import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payloa
  *
  * @author Thomas Pantelis
  */
-public final class SimpleReplicatedLogEntry implements ReplicatedLogEntry, MigratedSerializable {
+public final class SimpleReplicatedLogEntry implements ReplicatedLogEntry, Serializable {
     private static final class Proxy implements Externalizable {
         private static final long serialVersionUID = 1L;
 
@@ -38,6 +39,11 @@ public final class SimpleReplicatedLogEntry implements ReplicatedLogEntry, Migra
             this.replicatedLogEntry = replicatedLogEntry;
         }
 
+        static int estimatedSerializedSize(ReplicatedLogEntry replicatedLogEntry) {
+            return 8 /* index */ + 8 /* term */ + replicatedLogEntry.getData().size()
+                    + 400 /* estimated extra padding for class info */;
+        }
+
         @Override
         public void writeExternal(final ObjectOutput out) throws IOException {
             out.writeLong(replicatedLogEntry.getIndex());
@@ -61,14 +67,6 @@ public final class SimpleReplicatedLogEntry implements ReplicatedLogEntry, Migra
     private final long term;
     private final Payload payload;
     private boolean persistencePending;
-    private final boolean migrated;
-
-    private SimpleReplicatedLogEntry(long index, long term, Payload payload, boolean migrated) {
-        this.index = index;
-        this.term = term;
-        this.payload = Preconditions.checkNotNull(payload);
-        this.migrated = migrated;
-    }
 
     /**
      * Constructs an instance.
@@ -77,13 +75,10 @@ public final class SimpleReplicatedLogEntry implements ReplicatedLogEntry, Migra
      * @param term the term
      * @param payload the payload
      */
-    public SimpleReplicatedLogEntry(final long index, final long term, final Payload payload) {
-        this(index, term, payload, false);
-    }
-
-    @Deprecated
-    public static ReplicatedLogEntry createMigrated(final long index, final long term, final Payload payload) {
-        return new SimpleReplicatedLogEntry(index, term, payload, true);
+    public SimpleReplicatedLogEntry(long index, long term, Payload payload) {
+        this.index = index;
+        this.term = term;
+        this.payload = Preconditions.checkNotNull(payload);
     }
 
     @Override
@@ -116,14 +111,12 @@ public final class SimpleReplicatedLogEntry implements ReplicatedLogEntry, Migra
         persistencePending = pending;
     }
 
-    @Override
-    public boolean isMigrated() {
-        return migrated;
+    private Object writeReplace() {
+        return new Proxy(this);
     }
 
-    @Override
-    public Object writeReplace() {
-        return new Proxy(this);
+    public int estimatedSerializedSize() {
+        return Proxy.estimatedSerializedSize(this);
     }
 
     @Override