Rework body formatting wiring
[netconf.git] / restconf / restconf-nb / src / main / java / org / opendaylight / restconf / server / api / DataGetParams.java
index d32cab3a4658a9204b5fa390d4e57db6fd1b1a6c..ee7994af6efd475e10936081b1a93913e9404e9f 100644 (file)
@@ -9,14 +9,12 @@ package org.opendaylight.restconf.server.api;
 
 import static java.util.Objects.requireNonNull;
 
-import java.util.function.Function;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.restconf.api.FormatParameters;
+import org.opendaylight.restconf.api.QueryParameters;
 import org.opendaylight.restconf.api.query.ContentParam;
 import org.opendaylight.restconf.api.query.DepthParam;
 import org.opendaylight.restconf.api.query.FieldsParam;
-import org.opendaylight.restconf.api.query.PrettyPrintParam;
 import org.opendaylight.restconf.api.query.WithDefaultsParam;
 
 /**
@@ -27,14 +25,11 @@ public record DataGetParams(
         @NonNull ContentParam content,
         @Nullable DepthParam depth,
         @Nullable FieldsParam fields,
-        @Nullable WithDefaultsParam withDefaults,
-        @NonNull PrettyPrintParam prettyPrint) implements FormatParameters {
-    public static final @NonNull DataGetParams EMPTY =
-        new DataGetParams(ContentParam.ALL, null, null, null, PrettyPrintParam.FALSE);
+        @Nullable WithDefaultsParam withDefaults) {
+    public static final @NonNull DataGetParams EMPTY = new DataGetParams(ContentParam.ALL, null, null, null);
 
     public DataGetParams {
         requireNonNull(content);
-        requireNonNull(prettyPrint);
     }
 
     /**
@@ -45,12 +40,11 @@ public record DataGetParams(
      * @throws NullPointerException if {@code queryParameters} is {@code null}
      * @throws IllegalArgumentException if the parameters are invalid
      */
-    public static @NonNull DataGetParams of(final QueryParams params) {
+    public static @NonNull DataGetParams of(final QueryParameters params) {
         ContentParam content = ContentParam.ALL;
         DepthParam depth = null;
         FieldsParam fields = null;
         WithDefaultsParam withDefaults = null;
-        PrettyPrintParam prettyPrint = params.prettyPrint();
 
         for (var entry : params.asCollection()) {
             final var name = entry.getKey();
@@ -58,34 +52,22 @@ public record DataGetParams(
 
             switch (name) {
                 case ContentParam.uriName:
-                    content = parseParam(ContentParam::forUriValue, name, value);
+                    content = ContentParam.forUriValue(value);
                     break;
                 case DepthParam.uriName:
                     depth = DepthParam.forUriValue(value);
                     break;
                 case FieldsParam.uriName:
-                    fields = parseParam(FieldsParam::forUriValue, name, value);
+                    fields = FieldsParam.forUriValue(value);
                     break;
                 case WithDefaultsParam.uriName:
-                    withDefaults = parseParam(WithDefaultsParam::forUriValue, name, value);
-                    break;
-                case PrettyPrintParam.uriName:
-                    prettyPrint = parseParam(PrettyPrintParam::forUriValue, name, value);
+                    withDefaults = WithDefaultsParam.forUriValue(value);
                     break;
                 default:
                     throw new IllegalArgumentException("Unknown parameter in /data GET: " + name);
             }
         }
 
-        return new DataGetParams(content, depth, fields, withDefaults, prettyPrint);
-    }
-
-    private static <T> @NonNull T parseParam(final Function<@NonNull String, @NonNull T> method, final String name,
-            final @NonNull String value) {
-        try {
-            return method.apply(value);
-        } catch (IllegalArgumentException e) {
-            throw new IllegalArgumentException("Invalid " + name + " value: " + e.getMessage(), e);
-        }
+        return new DataGetParams(content, depth, fields, withDefaults);
     }
 }