- edit.setTarget(codec.deserialize(codec.serialize(path.getInstanceIdentifier()).concat(target)));
-
- final EffectiveStatement<?, ?> parentStmt = SchemaInferenceStack.ofInstantiatedPath(
- path.getSchemaContext(),
- codec.getDataContextTree().findChild(edit.getTarget()).orElseThrow().getDataSchemaNode()
- .getPath().getParent())
- .currentStatement();
- verify(parentStmt instanceof SchemaNode, "Unexpected parent %s", parentStmt);
- edit.setTargetSchemaNode((SchemaNode) parentStmt);
+ edit.setTarget(ParserIdentifier.parserPatchTarget(path, target));
+
+ final var stack = schemaTree.enterPath(edit.getTarget()).orElseThrow().stack();
+ if (!stack.isEmpty()) {
+ stack.exit();
+ }
+
+ if (!stack.isEmpty()) {
+ final EffectiveStatement<?, ?> parentStmt = stack.currentStatement();
+ verify(parentStmt instanceof SchemaNode, "Unexpected parent %s", parentStmt);
+ }
+ edit.setTargetSchemaNode(stack.toInference());