X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=data%2Fyang-data-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Futil%2FNormalizedNodeStreamWriterStack.java;h=35b16a9e422178e8e3842681c27b35cc6a5dd73b;hb=4cd2b06b8c376671c3ce7a0de43442843ac09f39;hp=686e0d8739bdbdd8c5a769f13d9386d8e6c9fde7;hpb=6e3a97a77736137f798bd712ae2652e13df07935;p=yangtools.git diff --git a/data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/NormalizedNodeStreamWriterStack.java b/data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/NormalizedNodeStreamWriterStack.java index 686e0d8739..35b16a9e42 100644 --- a/data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/NormalizedNodeStreamWriterStack.java +++ b/data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/NormalizedNodeStreamWriterStack.java @@ -22,6 +22,7 @@ import java.util.Set; 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; @@ -136,6 +137,23 @@ public final class NormalizedNodeStreamWriterStack implements LeafrefResolver { 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. *