Bump odlparent/yangtools/mdsal
[controller.git] / opendaylight / md-sal / sal-clustering-commons / src / main / java / org / opendaylight / controller / cluster / datastore / node / utils / stream / SerializationUtils.java
index 6735cdb684ccaf3f2abc18c1460381c1de61a27b..a2c456d17a65efb3fa5c2007379f75a1219dcc40 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.controller.cluster.datastore.node.utils.stream;
 
+import static org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion.MAGNESIUM;
+
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
@@ -15,6 +17,9 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+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;
 
 /**
  * Provides various utility methods for serialization and de-serialization.
@@ -28,35 +33,27 @@ public final class SerializationUtils {
 
     @FunctionalInterface
     public interface Applier<T> {
-        void apply(T instance, YangInstanceIdentifier path, NormalizedNode<?, ?> node);
+        void apply(T instance, YangInstanceIdentifier path, NormalizedNode node);
     }
 
-    public static Optional<NormalizedNode<?, ?>> readNormalizedNode(final DataInput in) throws IOException {
+    public static Optional<NormalizedNode> readNormalizedNode(final DataInput in) throws IOException {
         if (!in.readBoolean()) {
             return Optional.empty();
         }
-        return Optional.of(NormalizedNodeInputOutput.newDataInput(in).readNormalizedNode());
+        return Optional.of(NormalizedNodeDataInput.newDataInput(in).readNormalizedNode());
     }
 
-    public static void writeNormalizedNode(final DataOutput out, final @Nullable NormalizedNode<?, ?> node)
+    public static void writeNormalizedNode(final DataOutput out, final @Nullable NormalizedNode node)
             throws IOException {
-        if (node != null) {
-            out.writeBoolean(true);
-
-            try (NormalizedNodeDataOutput stream = NormalizedNodeInputOutput.newDataOutput(out)) {
-                stream.writeNormalizedNode(node);
-            }
-        } else {
-            out.writeBoolean(false);
-        }
+        writeNormalizedNode(out, MAGNESIUM, node);
     }
 
     public static void writeNormalizedNode(final DataOutput out, final NormalizedNodeStreamVersion version,
-            final @Nullable NormalizedNode<?, ?> node) throws IOException {
+            final @Nullable NormalizedNode node) throws IOException {
         if (node != null) {
             out.writeBoolean(true);
 
-            try (NormalizedNodeDataOutput stream = NormalizedNodeInputOutput.newDataOutput(out, version)) {
+            try (NormalizedNodeDataOutput stream = version.newDataOutput(out)) {
                 stream.writeNormalizedNode(node);
             }
         } else {
@@ -65,52 +62,61 @@ public final class SerializationUtils {
     }
 
     public static YangInstanceIdentifier readPath(final DataInput in) throws IOException {
-        return NormalizedNodeInputOutput.newDataInput(in).readYangInstanceIdentifier();
+        return NormalizedNodeDataInput.newDataInput(in).readYangInstanceIdentifier();
     }
 
     public static void writePath(final DataOutput out, final @NonNull YangInstanceIdentifier path)
             throws IOException {
-        try (NormalizedNodeDataOutput stream = NormalizedNodeInputOutput.newDataOutput(out)) {
-            stream.writeYangInstanceIdentifier(path);
-        }
+        writePath(out, MAGNESIUM, path);
     }
 
     public static void writePath(final DataOutput out, final NormalizedNodeStreamVersion version,
             final @NonNull YangInstanceIdentifier path) throws IOException {
-        try (NormalizedNodeDataOutput stream = NormalizedNodeInputOutput.newDataOutput(out, version)) {
+        try (NormalizedNodeDataOutput stream = version.newDataOutput(out)) {
             stream.writeYangInstanceIdentifier(path);
         }
     }
 
     public static <T> void readNodeAndPath(final DataInput in, final T instance, final Applier<T> applier)
             throws IOException {
-        final NormalizedNodeDataInput stream = NormalizedNodeInputOutput.newDataInput(in);
-        NormalizedNode<?, ?> node = stream.readNormalizedNode();
+        final NormalizedNodeDataInput stream = NormalizedNodeDataInput.newDataInput(in);
+        NormalizedNode node = stream.readNormalizedNode();
         YangInstanceIdentifier path = stream.readYangInstanceIdentifier();
         applier.apply(instance, path, node);
     }
 
-    public static void writeNodeAndPath(final DataOutput out, final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> node) throws IOException {
-        try (NormalizedNodeDataOutput stream = NormalizedNodeInputOutput.newDataOutput(out)) {
+    public static void writeNodeAndPath(final DataOutput out, final NormalizedNodeStreamVersion version,
+            final YangInstanceIdentifier path, final NormalizedNode node) throws IOException {
+        try (NormalizedNodeDataOutput stream = version.newDataOutput(out)) {
             stream.writeNormalizedNode(node);
             stream.writeYangInstanceIdentifier(path);
         }
     }
 
+    public static void writeNodeAndPath(final DataOutput out, final YangInstanceIdentifier path,
+            final NormalizedNode node) throws IOException {
+        writeNodeAndPath(out, MAGNESIUM, path, node);
+    }
+
     public static <T> void readPathAndNode(final DataInput in, final T instance, final Applier<T> applier)
             throws IOException {
-        final NormalizedNodeDataInput stream = NormalizedNodeInputOutput.newDataInput(in);
+        final NormalizedNodeDataInput stream = NormalizedNodeDataInput.newDataInput(in);
         YangInstanceIdentifier path = stream.readYangInstanceIdentifier();
-        NormalizedNode<?, ?> node = stream.readNormalizedNode();
+        NormalizedNode node = stream.readNormalizedNode();
         applier.apply(instance, path, node);
     }
 
-    public static void writePathAndNode(final DataOutput out, final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> node) throws IOException {
-        try (NormalizedNodeDataOutput stream = NormalizedNodeInputOutput.newDataOutput(out)) {
+    public static void writePathAndNode(final DataOutput out,
+            final org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion version,
+            final YangInstanceIdentifier path, final NormalizedNode node) throws IOException {
+        try (NormalizedNodeDataOutput stream = version.newDataOutput(out)) {
             stream.writeYangInstanceIdentifier(path);
             stream.writeNormalizedNode(node);
         }
     }
+
+    public static void writePathAndNode(final DataOutput out, final YangInstanceIdentifier path,
+            final NormalizedNode node) throws IOException {
+        writePathAndNode(out, MAGNESIUM, path, node);
+    }
 }