X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fcommands%2FLocalHistoryFailure.java;h=6f2eda8ba6b9d501c06854e542d1a180e8acc5d0;hb=refs%2Fchanges%2F47%2F103447%2F26;hp=60aba50d360a26df3f6d34de392573767bb3b4d0;hpb=e085f22bb1934959f9d6f7f4368c1afe964b1e07;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailure.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailure.java index 60aba50d36..6f2eda8ba6 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailure.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/LocalHistoryFailure.java @@ -7,7 +7,8 @@ */ package org.opendaylight.controller.cluster.access.commands; -import java.io.Serial; +import java.io.DataInput; +import java.io.IOException; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.RequestException; @@ -17,20 +18,37 @@ import org.opendaylight.controller.cluster.access.concepts.RequestFailure; * Generic {@link RequestFailure} involving a {@link LocalHistoryRequest}. */ public final class LocalHistoryFailure extends RequestFailure { - @Serial + interface SerialForm extends RequestFailure.SerialForm { + @Override + default LocalHistoryIdentifier readTarget(final DataInput in) throws IOException { + return LocalHistoryIdentifier.readFrom(in); + } + + @Override + default LocalHistoryFailure createFailure(final LocalHistoryIdentifier target, final long sequence, + final RequestException cause) { + return new LocalHistoryFailure(target, sequence, cause); + } + } + + @java.io.Serial private static final long serialVersionUID = 1L; + private LocalHistoryFailure(final LocalHistoryFailure failure, final ABIVersion version) { + super(failure, version); + } + LocalHistoryFailure(final LocalHistoryIdentifier target, final long sequence, final RequestException cause) { super(target, sequence, cause); } @Override - protected LocalHistoryFailure cloneAsVersion(final ABIVersion version) { - return this; + protected LocalHistoryFailure cloneAsVersion(final ABIVersion targetVersion) { + return new LocalHistoryFailure(this, targetVersion); } @Override - protected LocalHistoryFailureProxyV1 externalizableProxy(final ABIVersion version) { - return new LocalHistoryFailureProxyV1(this); + protected SerialForm externalizableProxy(final ABIVersion version) { + return ABIVersion.MAGNESIUM.lt(version) ? new HF(this) : new LocalHistoryFailureProxyV1(this); } }