Bump MRI upstreams
[netconf.git] / netconf / mdsal-netconf-connector / src / main / java / org / opendaylight / netconf / mdsal / connector / ops / EditConfig.java
index 35e25bcdda9c3f51f06a202131296aa759ca21ce..9e85e5cccf0ccf35901e318289f759e8557ac19d 100644 (file)
@@ -11,7 +11,6 @@ import com.google.common.base.Preconditions;
 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;
@@ -29,10 +28,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 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;
@@ -95,7 +93,7 @@ public final class EditConfig extends AbstractEdit {
     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;
@@ -139,16 +137,13 @@ public final class EditConfig extends AbstractEdit {
     }
 
     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.");