import java.io.IOException;
import java.util.ArrayDeque;
import java.util.Deque;
-import java.util.Optional;
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;
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.
*
checkArgument(parent instanceof DataNodeContainer, "Augmentation allowed only in DataNodeContainer", parent);
final AugmentationSchemaNode schema = findSchemaForAugment((AugmentationTarget) parent,
identifier.getPossibleChildNames());
- final AugmentationSchemaNode resolvedSchema = EffectiveAugmentationSchema.create(schema,
+ final AugmentationSchemaNode resolvedSchema = new EffectiveAugmentationSchema(schema,
(DataNodeContainer) parent);
schemaStack.push(resolvedSchema);
return resolvedSchema;
// FIXME: 7.0.0: can we get rid of this?
private static SchemaNode findCaseByChild(final ChoiceSchemaNode parent, final QName qname) {
for (final CaseSchemaNode caze : parent.getCases()) {
- final Optional<DataSchemaNode> potential = caze.findDataChildByName(qname);
- if (potential.isPresent()) {
+ if (caze.dataChildByName(qname) != null) {
return caze;
}
}