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;
/**
@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);
}
/**
* @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();
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);
}
}