Seal cluster.access.concepts.Envelope 14/114214/1
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 26 Oct 2024 09:42:50 +0000 (11:42 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 26 Oct 2024 09:44:36 +0000 (11:44 +0200)
This interface can be one of three things:
- RequestEnvelope, or
- ResponseEnvelope, being one of
  - FailureEnvelope
  - SuccessEnvelope

Change-Id: I45c2e35867f1deb9a057700c7a4a93d2f2258c15
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Envelope.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/ResponseEnvelope.java

index eed7b5374113a4bf4b91d53fb576281d667259e6..19487bd8ebf111e1d1ca466e06431c640a8b1efb 100644 (file)
@@ -19,7 +19,8 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.concepts.WritableObjects;
 
-public abstract class Envelope<T extends Message<?, ?>> implements Immutable, Serializable {
+public abstract sealed class Envelope<T extends Message<?, ?>> implements Immutable, Serializable
+        permits RequestEnvelope, ResponseEnvelope {
     interface SerialForm<T extends Message<?, ?>, E extends Envelope<T>> extends Externalizable {
 
         @NonNull E envelope();
index 50d1e7434ce1c845fb9c5948f0759b41d526fb88..06f97f5f6a774a53415e81f649e5e803ffc32ace 100644 (file)
@@ -15,7 +15,8 @@ import java.io.ObjectOutput;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.WritableObjects;
 
-public abstract class ResponseEnvelope<T extends Response<?, ?>> extends Envelope<T> {
+public abstract sealed class ResponseEnvelope<T extends Response<?, ?>> extends Envelope<T>
+        permits FailureEnvelope, SuccessEnvelope {
     interface SerialForm<T extends Response<?, ?>, E extends ResponseEnvelope<T>> extends Envelope.SerialForm<T, E> {
         @Override
         default void writeExternal(final ObjectOutput out, final @NonNull E envelope) throws IOException {