import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.YangInstanceIdentifierWriter;
import org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
import org.opendaylight.yangtools.yang.data.impl.schema.SchemaOrderedNormalizedNodeWriter;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
}
return ex.getErrorSeverity() == ErrorSeverity.ERROR
- ? RpcResultBuilder.newError(ex.getErrorType().toLegacy(), ex.getErrorTag().elementBody(),
+ ? RpcResultBuilder.newError(ex.getErrorType(), ex.getErrorTag(),
ex.getLocalizedMessage(), null, infoBuilder.toString(), ex.getCause())
- : RpcResultBuilder.newWarning(
- ex.getErrorType().toLegacy(), ex.getErrorTag().elementBody(),
+ : RpcResultBuilder.newWarning(ex.getErrorType(), ex.getErrorTag(),
ex.getLocalizedMessage(), null, infoBuilder.toString(), ex.getCause());
}
final var metadata = operation.map(o -> leafMetadata(dataPath, o)).orElse(null);
try {
if (lastChildOverride.isPresent()) {
- // FIXME remove ImmutableNodes.fromInstanceId usage
- final var configContent = ImmutableNodes.fromInstanceId(ctx, dataPath, lastChildOverride.get());
- NetconfUtil.writeNormalizedNode(configContent, metadata, new DOMResult(element), SchemaPath.ROOT, ctx);
+ // TODO do not transform this into result and then to xml, rework the whole pipeline to directly write
+ // into xml
+
+ final var parentPath = dataPath.isEmpty() ? dataPath : dataPath.coerceParent();
+ var result = new NormalizedNodeResult();
+ try (var streamWriter = ImmutableNormalizedNodeStreamWriter.from(result)) {
+ try (var iidWriter = YangInstanceIdentifierWriter.open(streamWriter, ctx, parentPath);
+ var nnWriter = NormalizedNodeWriter.forStreamWriter(streamWriter)) {
+ nnWriter.write(lastChildOverride.get());
+ }
+ }
+ NetconfUtil.writeNormalizedNode(result.getResult(), metadata, new DOMResult(element),
+ SchemaPath.ROOT, ctx);
} else {
NetconfUtil.writeNormalizedNode(dataPath, metadata, new DOMResult(element), SchemaPath.ROOT, ctx);
}
throws IOException, XMLStreamException {
final QName inputQName = YangConstants.operationInputQName(operationPath.lastNodeIdentifier().getModule());
// FIXME: eliminate this conversion
- final SchemaPath inputPath = operationPath.asSchemaPath().createChild(inputQName);
+ final SchemaPath inputPath = SchemaPath.of(operationPath).createChild(inputQName);
final XMLStreamWriter writer = NetconfUtil.XML_FACTORY.createXMLStreamWriter(result);
try {