import static java.util.Objects.requireNonNull;
import com.google.common.base.MoreObjects;
-import java.util.Map;
import java.util.function.Function;
import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.restconf.api.QueryParameters;
import org.opendaylight.restconf.api.query.ChangedLeafNodesOnlyParam;
import org.opendaylight.restconf.api.query.ChildNodesOnlyParam;
import org.opendaylight.restconf.api.query.FilterParam;
/**
* Return {@link EventStreamGetParams} for specified query parameters.
*
- * @param queryParameters Parameters and their values
+ * @param parames Parameters and their values
* @return A {@link EventStreamGetParams}
* @throws NullPointerException if {@code queryParameters} is {@code null}
* @throws IllegalArgumentException if the parameters are invalid
*/
- public static @NonNull EventStreamGetParams ofQueryParameters(final Map<String, String> queryParameters) {
+ public static @NonNull EventStreamGetParams of(final QueryParameters parames) {
StartTimeParam startTime = null;
StopTimeParam stopTime = null;
FilterParam filter = null;
ChangedLeafNodesOnlyParam changedLeafNodesOnly = null;
ChildNodesOnlyParam childNodesOnly = null;
- for (var entry : queryParameters.entrySet()) {
+ for (var entry : parames.asCollection()) {
final var paramName = entry.getKey();
final var paramValue = entry.getValue();
switch (paramName) {
case FilterParam.uriName:
- filter = optionalParam(FilterParam::forUriValue, paramName, paramValue);
+ filter = mandatoryParam(FilterParam::forUriValue, paramName, paramValue);
break;
case StartTimeParam.uriName:
- startTime = optionalParam(StartTimeParam::forUriValue, paramName, paramValue);
+ startTime = mandatoryParam(StartTimeParam::forUriValue, paramName, paramValue);
break;
case StopTimeParam.uriName:
- stopTime = optionalParam(StopTimeParam::forUriValue, paramName, paramValue);
+ stopTime = mandatoryParam(StopTimeParam::forUriValue, paramName, paramValue);
break;
case LeafNodesOnlyParam.uriName:
- leafNodesOnly = optionalParam(LeafNodesOnlyParam::forUriValue, paramName, paramValue);
+ leafNodesOnly = mandatoryParam(LeafNodesOnlyParam::forUriValue, paramName, paramValue);
break;
case SkipNotificationDataParam.uriName:
- skipNotificationData = optionalParam(SkipNotificationDataParam::forUriValue, paramName,
+ skipNotificationData = mandatoryParam(SkipNotificationDataParam::forUriValue, paramName,
paramValue);
break;
case ChangedLeafNodesOnlyParam.uriName:
- changedLeafNodesOnly = optionalParam(ChangedLeafNodesOnlyParam::forUriValue, paramName,
+ changedLeafNodesOnly = mandatoryParam(ChangedLeafNodesOnlyParam::forUriValue, paramName,
paramValue);
break;
case ChildNodesOnlyParam.uriName:
- childNodesOnly = optionalParam(ChildNodesOnlyParam::forUriValue, paramName, paramValue);
+ childNodesOnly = mandatoryParam(ChildNodesOnlyParam::forUriValue, paramName, paramValue);
break;
default:
throw new IllegalArgumentException("Invalid parameter: " + paramName);
}
// FIXME: find a better place for this method
- public static <T> @Nullable T optionalParam(final Function<String, @NonNull T> factory, final String name,
+ public static <T> @NonNull T mandatoryParam(final Function<String, @NonNull T> factory, final String name,
final String value) {
try {
return factory.apply(requireNonNull(value));