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%2FModifyTransactionRequestProxyV1.java;h=91d8a27c6b2ce530e85e28e5496a9717f96c49cd;hb=refs%2Fchanges%2F47%2F103447%2F26;hp=369aa1515bb7fa9ac488c7c92c436f3529db599e;hpb=e085f22bb1934959f9d6f7f4368c1afe964b1e07;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestProxyV1.java index 369aa1515b..91d8a27c6b 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestProxyV1.java @@ -7,37 +7,17 @@ */ package org.opendaylight.controller.cluster.access.commands; -import static java.util.Objects.requireNonNull; - -import akka.actor.ActorRef; -import com.google.common.collect.ImmutableList; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; -import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; -import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter; - /** * Externalizable proxy for use with {@link ExistsTransactionRequest}. It implements the initial (Boron) serialization * format. * * @author Robert Varga */ -final class ModifyTransactionRequestProxyV1 extends AbstractTransactionRequestProxy { - @Serial +final class ModifyTransactionRequestProxyV1 extends AbstractTransactionRequestProxy + implements ModifyTransactionRequest.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private List modifications; - private Optional protocol; - private transient NormalizedNodeStreamVersion streamVersion; - // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to // be able to create instances via reflection. @SuppressWarnings("checkstyle:RedundantModifier") @@ -47,49 +27,5 @@ final class ModifyTransactionRequestProxyV1 extends AbstractTransactionRequestPr ModifyTransactionRequestProxyV1(final ModifyTransactionRequest request) { super(request); - modifications = requireNonNull(request.getModifications()); - protocol = request.getPersistenceProtocol(); - streamVersion = request.getVersion().getStreamVersion(); - } - - @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - super.readExternal(in); - - protocol = Optional.ofNullable(PersistenceProtocol.readFrom(in)); - - final int size = in.readInt(); - if (size != 0) { - modifications = new ArrayList<>(size); - final NormalizedNodeDataInput nnin = NormalizedNodeDataInput.newDataInput(in); - final ReusableImmutableNormalizedNodeStreamWriter writer = - ReusableImmutableNormalizedNodeStreamWriter.create(); - for (int i = 0; i < size; ++i) { - modifications.add(TransactionModification.readFrom(nnin, writer)); - } - } else { - modifications = ImmutableList.of(); - } - } - - @Override - public void writeExternal(final ObjectOutput out) throws IOException { - super.writeExternal(out); - - out.writeByte(PersistenceProtocol.byteValue(protocol.orElse(null))); - out.writeInt(modifications.size()); - if (!modifications.isEmpty()) { - try (NormalizedNodeDataOutput nnout = streamVersion.newDataOutput(out)) { - for (TransactionModification op : modifications) { - op.writeTo(nnout); - } - } - } - } - - @Override - protected ModifyTransactionRequest createRequest(final TransactionIdentifier target, final long sequence, - final ActorRef replyTo) { - return new ModifyTransactionRequest(target, sequence, replyTo, modifications, protocol.orElse(null)); } }