OpenApi add POST request to device root
[netconf.git] / restconf / restconf-nb / src / main / java / org / opendaylight / restconf / server / api / ChildBody.java
index dbc5f5c8ba4d8e4ec711dbf958c69ae63284ca68..35a9dcd98c9467772612ebba54117bcecbd01e99 100644 (file)
@@ -11,12 +11,14 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import java.io.InputStream;
-import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.restconf.server.api.DatabindPath.Data;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
-public abstract sealed class ChildBody extends AbstractBody permits JsonChildBody, XmlChildBody {
-    public record PrefixAndBody(@NonNull ImmutableList<PathArgument> prefix, @NonNull NormalizedNode body) {
+@NonNullByDefault
+public abstract sealed class ChildBody extends RequestBody permits JsonChildBody, XmlChildBody {
+    public record PrefixAndBody(ImmutableList<PathArgument> prefix, NormalizedNode body) {
         public PrefixAndBody {
             requireNonNull(prefix);
             requireNonNull(body);
@@ -32,10 +34,11 @@ public abstract sealed class ChildBody extends AbstractBody permits JsonChildBod
      *
      * @param path POST request path
      * @return A {@link PrefixAndBody}
+     * @throws ServerException if an error occurs
      */
-    public final @NonNull PrefixAndBody toPayload(final @NonNull DataPostPath path) {
-        return toPayload(path, acquireStream());
+    public final PrefixAndBody toPayload(final Data path) throws ServerException {
+        return toPayload(path, consume());
     }
 
-    abstract @NonNull PrefixAndBody toPayload(@NonNull DataPostPath path, @NonNull InputStream inputStream);
+    abstract PrefixAndBody toPayload(Data path, InputStream inputStream) throws ServerException;
 }