Improve segmented journal actor metrics
[controller.git] / opendaylight / md-sal / cds-access-api / src / main / java / org / opendaylight / controller / cluster / access / commands / ReadTransactionSuccess.java
index 1b3410ee3c0bdc7c8628aa3ae5f3877664118f60..a03766e9da32d88c7ad3950449ebe3d37b991d6b 100644 (file)
@@ -9,8 +9,10 @@ package org.opendaylight.controller.cluster.access.commands;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.annotations.Beta;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectStreamException;
 import java.util.Optional;
 import org.opendaylight.controller.cluster.access.ABIVersion;
 import org.opendaylight.controller.cluster.access.concepts.SliceableMessage;
@@ -20,16 +22,19 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 /**
  * Successful reply to an {@link ReadTransactionRequest}. It indicates presence of requested data via
  * {@link #getData()}.
- *
- * @author Robert Varga
  */
-@Beta
-@SuppressFBWarnings("SE_BAD_FIELD")
 public final class ReadTransactionSuccess extends TransactionSuccess<ReadTransactionSuccess>
         implements SliceableMessage {
+    @java.io.Serial
     private static final long serialVersionUID = 1L;
+
     private final Optional<NormalizedNode> data;
 
+    private ReadTransactionSuccess(final ReadTransactionSuccess request, final ABIVersion version) {
+        super(request, version);
+        data = request.data;
+    }
+
     public ReadTransactionSuccess(final TransactionIdentifier identifier, final long sequence,
             final Optional<NormalizedNode> data) {
         super(identifier, sequence);
@@ -41,12 +46,27 @@ public final class ReadTransactionSuccess extends TransactionSuccess<ReadTransac
     }
 
     @Override
-    protected AbstractTransactionSuccessProxy<ReadTransactionSuccess> externalizableProxy(final ABIVersion version) {
-        return new ReadTransactionSuccessProxyV1(this);
+    protected RTS externalizableProxy(final ABIVersion version) {
+        return new RTS(this);
     }
 
     @Override
     protected ReadTransactionSuccess cloneAsVersion(final ABIVersion version) {
-        return this;
+        return new ReadTransactionSuccess(this, version);
+    }
+
+    @java.io.Serial
+    private void readObject(final ObjectInputStream stream) throws IOException, ClassNotFoundException {
+        throwNSE();
+    }
+
+    @java.io.Serial
+    private void readObjectNoData() throws ObjectStreamException {
+        throwNSE();
+    }
+
+    @java.io.Serial
+    private void writeObject(final ObjectOutputStream stream) throws IOException {
+        throwNSE();
     }
 }