* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.controller.cluster.raft.messages;
-public class InstallSnapshotReply extends AbstractRaftRPC {
- private static final long serialVersionUID = 1L;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+public final class InstallSnapshotReply extends AbstractRaftRPC {
+ @java.io.Serial
+ private static final long serialVersionUID = 642227896390779503L;
// The followerId - this will be used to figure out which follower is
// responding
private final String followerId;
private final int chunkIndex;
- private boolean success;
+ private final boolean success;
- public InstallSnapshotReply(long term, String followerId, int chunkIndex,
- boolean success) {
+ public InstallSnapshotReply(final long term, final String followerId, final int chunkIndex, final boolean success) {
super(term);
this.followerId = followerId;
this.chunkIndex = chunkIndex;
public boolean isSuccess() {
return success;
}
+
+ @Override
+ public String toString() {
+ return "InstallSnapshotReply [term=" + getTerm()
+ + ", followerId=" + followerId
+ + ", chunkIndex=" + chunkIndex
+ + ", success=" + success + "]";
+ }
+
+ @Override
+ Object writeReplace() {
+ return new IR(this);
+ }
+
+ @Deprecated(since = "7.0.0", forRemoval = true)
+ private static class Proxy implements Externalizable {
+ @java.io.Serial
+ private static final long serialVersionUID = 1L;
+
+ private InstallSnapshotReply installSnapshotReply;
+
+ // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't
+ // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection.
+ @SuppressWarnings("checkstyle:RedundantModifier")
+ public Proxy() {
+ }
+
+ @Override
+ public void writeExternal(final ObjectOutput out) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException {
+ long term = in.readLong();
+ String followerId = (String) in.readObject();
+ int chunkIndex = in.readInt();
+ boolean success = in.readBoolean();
+
+ installSnapshotReply = new InstallSnapshotReply(term, followerId, chunkIndex, success);
+ }
+
+ @java.io.Serial
+ private Object readResolve() {
+ return installSnapshotReply;
+ }
+ }
}