You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/05/31 01:53:41 UTC

[02/14] james-project git commit: JAMES-2404 Improve ParametersExtractor

JAMES-2404 Improve ParametersExtractor


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d8ef8aea
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d8ef8aea
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d8ef8aea

Branch: refs/heads/master
Commit: d8ef8aea49303630eb03683bd09d7d196a409a1c
Parents: 006c81b
Author: benwa <bt...@linagora.com>
Authored: Wed May 30 09:53:16 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu May 31 08:53:15 2018 +0700

----------------------------------------------------------------------
 .../webadmin/utils/ParametersExtractor.java     | 21 ++++++++++----------
 1 file changed, 10 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d8ef8aea/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/ParametersExtractor.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/ParametersExtractor.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/ParametersExtractor.java
index 2cba692..582f1d2 100644
--- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/ParametersExtractor.java
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/ParametersExtractor.java
@@ -19,6 +19,7 @@
 package org.apache.james.webadmin.utils;
 
 import java.util.Optional;
+import java.util.function.Function;
 
 import org.apache.james.util.streams.Limit;
 import org.apache.james.util.streams.Offset;
@@ -34,30 +35,28 @@ public class ParametersExtractor {
     public static final String OFFSET_PARAMETER_NAME = "offset";
 
     public static Limit extractLimit(Request request) {
-        return Limit.from(assertPositiveInteger(request, LIMIT_PARAMETER_NAME)
+        return Limit.from(extractPositiveInteger(request, LIMIT_PARAMETER_NAME)
                 .map(value -> assertNotZero(value, LIMIT_PARAMETER_NAME)));
     }
 
     public static Offset extractOffset(Request request) {
-        return Offset.from(assertPositiveInteger(request, OFFSET_PARAMETER_NAME));
+        return Offset.from(extractPositiveInteger(request, OFFSET_PARAMETER_NAME));
     }
 
     public static Optional<Double> extractPositiveDouble(Request request, String parameterName) {
-        return extractPositiveNumber(request, parameterName)
-                .map(Number::doubleValue);
+        return extractPositiveNumber(request, parameterName, Double::valueOf);
     }
 
-    private static Optional<Integer> assertPositiveInteger(Request request, String parameterName) {
-        return extractPositiveNumber(request, parameterName)
-                .map(Number::intValue);
+    public static Optional<Integer> extractPositiveInteger(Request request, String parameterName) {
+        return extractPositiveNumber(request, parameterName, Integer::valueOf);
     }
 
-    private static Optional<Number> extractPositiveNumber(Request request, String parameterName) {
+    private static <T extends Number> Optional<T> extractPositiveNumber(Request request, String parameterName, Function<String, T> toNumber) {
         try {
             return Optional.ofNullable(request.queryParams(parameterName))
                 .filter(s -> !Strings.isNullOrEmpty(s))
-                .map(Double::valueOf)
-                .map(value -> assertPositive(value, parameterName));
+                .map(toNumber)
+                .map(value -> ParametersExtractor.assertPositive(value, parameterName));
         } catch (NumberFormatException e) {
             throw ErrorResponder.builder()
                 .statusCode(HttpStatus.BAD_REQUEST_400)
@@ -68,7 +67,7 @@ public class ParametersExtractor {
         }
     }
 
-    private static Number assertPositive(Number value, String parameterName) {
+    private static <T extends Number> T assertPositive(T value, String parameterName) {
         if (value.doubleValue() < 0) {
             throw ErrorResponder.builder()
                 .statusCode(HttpStatus.BAD_REQUEST_400)


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org