import org.opendaylight.yangtools.rfc7952.data.api.StreamWriterMetadataExtension;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.YangConstants;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
NormalizedNodeStreamWriterStack.of(context, path));
}
+ /**
+ * Create a new writer with the specified context and rooted in the specified {@link YangInstanceIdentifier}.
+ *
+ * @param writer Output {@link XMLStreamWriter}
+ * @param context Associated {@link EffectiveModelContext}.
+ * @param path path
+ * @return A new {@link NormalizedNodeStreamWriter}
+ */
+ public static @NonNull NormalizedNodeStreamWriter create(final XMLStreamWriter writer,
+ final EffectiveModelContext context, final YangInstanceIdentifier path) {
+ return new SchemaAwareXMLStreamNormalizedNodeStreamWriter(writer, context,
+ NormalizedNodeStreamWriterStack.of(context, path));
+ }
+
/**
* Create a new writer with the specified context and rooted in the specified operation's input.
*
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.util.AbstractMountPointDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.AbstractNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.CompositeNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.CompositeNodeDataWithSchema.ChildReusePolicy;
import org.opendaylight.yangtools.yang.data.util.ContainerNodeDataWithSchema;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
import org.opendaylight.yangtools.yang.data.util.LeafListEntryNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.LeafListNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.LeafNodeDataWithSchema;
import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
return create(writer, mountCtx, parentNode, true);
}
+ @Beta
+ public static XmlParserStream create(final NormalizedNodeStreamWriter writer, final MountPointContext mountCtx,
+ final Absolute parentNode) {
+ return create(writer, mountCtx, parentNode, true);
+ }
+
+ @Beta
+ public static XmlParserStream create(final NormalizedNodeStreamWriter writer, final MountPointContext mountCtx,
+ final Absolute parentNode, final boolean strictParsing) {
+ return create(writer, XmlCodecFactory.create(mountCtx), parentNode, strictParsing);
+ }
+
+ @Beta
+ public static XmlParserStream create(final NormalizedNodeStreamWriter writer, final XmlCodecFactory codecs,
+ final Absolute parentNode) {
+ return create(writer, codecs, parentNode, true);
+ }
+
+ @Beta
+ public static XmlParserStream create(final NormalizedNodeStreamWriter writer, final XmlCodecFactory codecs,
+ final Absolute parentNode, final boolean strictParsing) {
+ return new XmlParserStream(writer, codecs,
+ SchemaInferenceStack.of(codecs.getEffectiveModelContext(), parentNode), strictParsing);
+ }
+
+ @Beta
+ public static XmlParserStream create(final NormalizedNodeStreamWriter writer, final MountPointContext mountCtx,
+ final YangInstanceIdentifier parentNode) {
+ return create(writer, mountCtx, parentNode, true);
+ }
+
+ @Beta
+ public static XmlParserStream create(final NormalizedNodeStreamWriter writer, final MountPointContext mountCtx,
+ final YangInstanceIdentifier parentNode, final boolean strictParsing) {
+ final var init = DataSchemaContextTree.from(mountCtx.getEffectiveModelContext())
+ .enterPath(parentNode)
+ .orElseThrow();
+ return new XmlParserStream(writer, XmlCodecFactory.create(mountCtx), init.stack(), strictParsing);
+ }
+
/**
* Utility method for use when caching {@link XmlCodecFactory} is not feasible. Users with high performance
* requirements should use {@link #create(NormalizedNodeStreamWriter, XmlCodecFactory, EffectiveStatementInference)}
import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
return new NormalizedNodeStreamWriterStack(SchemaInferenceStack.of(context, path));
}
+ /**
+ * Create a new writer with the specified context and rooted in the specified {@link YangInstanceIdentifier}..
+ *
+ * @param context Associated {@link EffectiveModelContext}
+ * @param path Normalized path
+ * @return A new {@link NormalizedNodeStreamWriterStack}
+ * @throws NullPointerException if any argument is null
+ * @throws IllegalArgumentException if {@code path} does not point to a valid root
+ */
+ public static @NonNull NormalizedNodeStreamWriterStack of(final EffectiveModelContext context,
+ final YangInstanceIdentifier path) {
+ return new NormalizedNodeStreamWriterStack(DataSchemaContextTree.from(context)
+ .enterPath(path)
+ .orElseThrow()
+ .stack());
+ }
+
/**
* Create a new writer with the specified context and rooted in the specified schema path.
*