OpenApi add POST request to device root
[netconf.git] / restconf / restconf-nb / src / main / java / org / opendaylight / restconf / server / api / EventStreamGetParams.java
index 79f1ac3ad1facd0a8b3c30aca961c542eeeaa5ef..2f10ca38485f6db04bd429778380bc8d229220cf 100644 (file)
@@ -11,10 +11,9 @@ package org.opendaylight.restconf.server.api;
 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;
@@ -55,12 +54,12 @@ public record EventStreamGetParams(
     /**
      * 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;
@@ -69,33 +68,33 @@ public record EventStreamGetParams(
         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);
@@ -134,7 +133,7 @@ public record EventStreamGetParams(
     }
 
     // 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));