import java.io.IOException;
import java.io.OutputStream;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
import java.util.List;
import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.Provider;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
+import org.opendaylight.restconf.api.MediaTypes;
import org.opendaylight.restconf.common.errors.RestconfError;
-import org.opendaylight.restconf.common.patch.PatchStatusContext;
-import org.opendaylight.restconf.nb.rfc8040.MediaTypes;
+import org.opendaylight.restconf.server.api.DatabindContext;
+import org.opendaylight.restconf.server.api.PatchStatusContext;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.patch.rev170222.yang.patch.status.YangPatchStatus;
-import org.opendaylight.yangtools.yang.data.codec.xml.XmlCodecFactory;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
@Provider
@Produces(MediaTypes.APPLICATION_YANG_DATA_XML)
}
@Override
- public void writeTo(final PatchStatusContext patchStatusContext, final Class<?> type, final Type genericType,
- final Annotation[] annotations, final MediaType mediaType,
- final MultivaluedMap<String, Object> httpHeaders, final OutputStream entityStream)
- throws IOException {
+ void writeTo(final PatchStatusContext body, final OutputStream out) throws IOException {
try {
- final XMLStreamWriter xmlWriter =
- XML_FACTORY.createXMLStreamWriter(entityStream, StandardCharsets.UTF_8.name());
- writeDocument(xmlWriter, patchStatusContext);
+ final var xmlWriter = XML_FACTORY.createXMLStreamWriter(out, StandardCharsets.UTF_8.name());
+ writeDocument(xmlWriter, body);
} catch (final XMLStreamException e) {
throw new IOException("Failed to write body", e);
}
}
- private static void writeDocument(final XMLStreamWriter writer, final PatchStatusContext context)
+ private static void writeDocument(final XMLStreamWriter writer, final PatchStatusContext body)
throws XMLStreamException {
writer.writeStartElement("", "yang-patch-status", XML_NAMESPACE);
writer.writeStartElement("patch-id");
- writer.writeCharacters(context.patchId());
+ writer.writeCharacters(body.patchId());
writer.writeEndElement();
- if (context.ok()) {
+ if (body.ok()) {
writer.writeEmptyElement("ok");
} else {
- final var globalErrors = context.globalErrors();
+ final var globalErrors = body.globalErrors();
if (globalErrors != null) {
- reportErrors(context.context(), globalErrors, writer);
+ reportErrors(body.databind(), globalErrors, writer);
} else {
writer.writeStartElement("edit-status");
- for (var patchStatusEntity : context.editCollection()) {
+ for (var patchStatusEntity : body.editCollection()) {
writer.writeStartElement("edit");
writer.writeStartElement("edit-id");
writer.writeCharacters(patchStatusEntity.getEditId());
final var editErrors = patchStatusEntity.getEditErrors();
if (editErrors != null) {
- reportErrors(context.context(), editErrors, writer);
+ reportErrors(body.databind(), editErrors, writer);
} else if (patchStatusEntity.isOk()) {
writer.writeEmptyElement("ok");
}
writer.flush();
}
- private static void reportErrors(final EffectiveModelContext modelContext, final List<RestconfError> errors,
+ private static void reportErrors(final DatabindContext databind, final List<RestconfError> errors,
final XMLStreamWriter writer) throws XMLStreamException {
writer.writeStartElement("errors");
final var errorPath = restconfError.getErrorPath();
if (errorPath != null) {
writer.writeStartElement("error-path");
- XmlCodecFactory.create(modelContext).instanceIdentifierCodec()
- .writeValue(writer, errorPath);
+ databind.xmlCodecs().instanceIdentifierCodec().writeValue(writer, errorPath);
writer.writeEndElement();
}