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 e83adee10ea524f6488c1f4e22c786e115d49e7b..a03766e9da32d88c7ad3950449ebe3d37b991d6b 100644 (file)
@@ -7,45 +7,66 @@
  */
 package org.opendaylight.controller.cluster.access.commands;
 
-import com.google.common.annotations.Beta;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
+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;
 import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
 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
+ * Successful reply to an {@link ReadTransactionRequest}. It indicates presence of requested data via
+ * {@link #getData()}.
  */
-@Beta
-public final class ReadTransactionSuccess extends TransactionSuccess<ReadTransactionSuccess> {
+public final class ReadTransactionSuccess extends TransactionSuccess<ReadTransactionSuccess>
+        implements SliceableMessage {
+    @java.io.Serial
     private static final long serialVersionUID = 1L;
-    private final Optional<NormalizedNode<?, ?>> data;
 
-    public ReadTransactionSuccess(final TransactionIdentifier identifier, final long sequence,
-            final Optional<NormalizedNode<?, ?>> data) {
-        this(identifier, sequence, 0, data);
+    private final Optional<NormalizedNode> data;
+
+    private ReadTransactionSuccess(final ReadTransactionSuccess request, final ABIVersion version) {
+        super(request, version);
+        data = request.data;
     }
 
-    ReadTransactionSuccess(final TransactionIdentifier identifier, final long sequence, final long retry,
-            final Optional<NormalizedNode<?, ?>> data) {
-        super(identifier, sequence, retry);
-        this.data = Preconditions.checkNotNull(data);
+    public ReadTransactionSuccess(final TransactionIdentifier identifier, final long sequence,
+            final Optional<NormalizedNode> data) {
+        super(identifier, sequence);
+        this.data = requireNonNull(data);
     }
 
-    public Optional<NormalizedNode<?, ?>> getData() {
+    public Optional<NormalizedNode> getData() {
         return data;
     }
 
     @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();
     }
 }