import java.util.List;
import java.util.ListIterator;
import java.util.concurrent.ExecutionException;
-import java.util.stream.Collectors;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
import org.opendaylight.netconf.api.DocumentedException;
import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
private void executeChange(final DOMDataTreeReadWriteTransaction rwtx, final DataTreeChange change)
throws DocumentedException {
final YangInstanceIdentifier path = change.getPath();
- final NormalizedNode<?, ?> changeData = change.getChangeRoot();
+ final NormalizedNode changeData = change.getChangeRoot();
switch (change.getAction()) {
case NONE:
return;
}
private void mergeParentMixin(final DOMDataTreeReadWriteTransaction rwtx, final YangInstanceIdentifier path,
- final NormalizedNode<?, ?> change) {
+ final NormalizedNode change) {
final YangInstanceIdentifier parentNodeYid = path.getParent();
if (change instanceof MapEntryNode) {
- final SchemaNode schemaNode = SchemaContextUtil.findNodeInSchemaContext(
- schemaContext.getCurrentContext(),
- parentNodeYid.getPathArguments().stream()
- // filter out identifiers not present in the schema tree
- .filter(arg -> !(arg instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates))
- .filter(arg -> !(arg instanceof YangInstanceIdentifier.AugmentationIdentifier))
- .map(YangInstanceIdentifier.PathArgument::getNodeType).collect(Collectors.toList()));
+ final DataSchemaNode schemaNode = DataSchemaContextTree.from(schemaContext.getCurrentContext())
+ .findChild(parentNodeYid)
+ .orElseThrow(() -> new IllegalStateException("Cannot find schema for " + parentNodeYid))
+ .getDataSchemaNode();
// we should have the schema node that points to the parent list now, enforce it
Preconditions.checkState(schemaNode instanceof ListSchemaNode, "Schema node is not pointing to a list.");