import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.IOException;
+import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
public final class SerializationUtils {
@Deprecated
public static final ThreadLocal<NormalizedNodeDataOutput> REUSABLE_WRITER_TL = new ThreadLocal<>();
+ @Deprecated
public static final ThreadLocal<NormalizedNodeDataInput> REUSABLE_READER_TL = new ThreadLocal<>();
private SerializationUtils() {
+
}
+ @FunctionalInterface
public interface Applier<T> {
void apply(T instance, YangInstanceIdentifier path, NormalizedNode<?, ?> node);
}
return streamWriter;
}
+ @Deprecated
private static NormalizedNodeDataInput streamReader(final DataInput in) throws IOException {
NormalizedNodeDataInput streamReader = REUSABLE_READER_TL.get();
if (streamReader == null) {
}
}
+ @Deprecated
public static <T> void deserializePathAndNode(final DataInput in, final T instance, final Applier<T> applier) {
try {
NormalizedNodeDataInput streamReader = streamReader(in);
return null;
}
+ @Deprecated
public static NormalizedNode<?, ?> deserializeNormalizedNode(final DataInput in) {
try {
return tryDeserializeNormalizedNode(in);
}
}
+ @Deprecated
public static NormalizedNode<?, ?> deserializeNormalizedNode(final byte [] bytes) {
try {
return tryDeserializeNormalizedNode(new DataInputStream(new ByteArrayInputStream(bytes)));
}
}
+ public static Optional<NormalizedNode<?, ?>> readNormalizedNode(final DataInput in) throws IOException {
+ if (!in.readBoolean()) {
+ return Optional.empty();
+ }
+ return Optional.of(NormalizedNodeInputOutput.newDataInput(in).readNormalizedNode());
+ }
+
@Deprecated
public static void serializeNormalizedNode(final NormalizedNode<?, ?> node, final DataOutput out) {
try {
}
}
+ public static YangInstanceIdentifier readPath(final DataInput in) throws IOException {
+ return NormalizedNodeInputOutput.newDataInput(in).readYangInstanceIdentifier();
+ }
+
public static void writePath(final DataOutput out, final @NonNull YangInstanceIdentifier path)
throws IOException {
try (NormalizedNodeDataOutput stream = NormalizedNodeInputOutput.newDataOutput(out)) {
}
}
+ 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();
+ 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 <T> void readPathAndNode(final DataInput in, final T instance, final Applier<T> applier)
+ throws IOException {
+ final NormalizedNodeDataInput stream = NormalizedNodeInputOutput.newDataInput(in);
+ YangInstanceIdentifier path = stream.readYangInstanceIdentifier();
+ 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)) {
}
}
+ @Deprecated
public static YangInstanceIdentifier deserializePath(final DataInput in) {
try {
NormalizedNodeDataInput streamReader = streamReader(in);