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%2Fconcepts%2FAbstractEnvelopeProxy.java;fp=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fconcepts%2FAbstractEnvelopeProxy.java;h=a97a3f0aadc7fc456df96a0bbaaa3fa3cbd943cd;hb=d92bd0e575983b3d6a09a73089ef8f9c62f94eaa;hp=c4d100a560afaf388b99649945e7c9d4fd64add1;hpb=e085f22bb1934959f9d6f7f4368c1afe964b1e07;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeProxy.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeProxy.java index c4d100a560..a97a3f0aad 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeProxy.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/AbstractEnvelopeProxy.java @@ -7,51 +7,36 @@ */ package org.opendaylight.controller.cluster.access.concepts; -import java.io.Externalizable; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.io.Serial; -import org.opendaylight.yangtools.concepts.WritableObjects; - -abstract class AbstractEnvelopeProxy> implements Externalizable { - @Serial +import static com.google.common.base.Verify.verifyNotNull; +import static java.util.Objects.requireNonNull; + +abstract class AbstractEnvelopeProxy, E extends Envelope> + implements Envelope.SerialForm { + @java.io.Serial private static final long serialVersionUID = 1L; - private T message; - private long sessionId; - private long txSequence; + private E envelope; AbstractEnvelopeProxy() { // for Externalizable } - AbstractEnvelopeProxy(final Envelope envelope) { - message = envelope.getMessage(); - txSequence = envelope.getTxSequence(); - sessionId = envelope.getSessionId(); + AbstractEnvelopeProxy(final E envelope) { + this.envelope = requireNonNull(envelope); } @Override - public void writeExternal(final ObjectOutput out) throws IOException { - WritableObjects.writeLongs(out, sessionId, txSequence); - out.writeObject(message); + public final E envelope() { + return verifyNotNull(envelope); } - @SuppressWarnings("unchecked") @Override - public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - final byte header = WritableObjects.readLongHeader(in); - sessionId = WritableObjects.readFirstLong(in, header); - txSequence = WritableObjects.readSecondLong(in, header); - message = (T) in.readObject(); + public final void setEnvelope(final E envelope) { + this.envelope = requireNonNull(envelope); } - @SuppressWarnings("checkstyle:hiddenField") - abstract Envelope createEnvelope(T wrappedNessage, long sessionId, long txSequence); - - @Serial - final Object readResolve() { - return createEnvelope(message, sessionId, txSequence); + @Override + public final Object readResolve() { + return envelope(); } }