From d6454481a9b0ebd4392c344edc8a4bcd5e7e116e Mon Sep 17 00:00:00 2001 From: Katsute <58778985+Katsute@users.noreply.github.com> Date: Thu, 24 Dec 2020 16:58:00 -0500 Subject: [PATCH] reorder predicate handler --- pom.xml | 2 +- .../simplehttpserver/ContextUtil.java | 2 +- .../handler/PredicateHandler.java | 24 ++++++++++++++++++- .../simplehttpserver/handler/RootHandler.java | 6 ++--- .../handlers/PredicateHandlerTests.java | 2 +- 5 files changed, 29 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 773d3ce..88bcee4 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.kttdevelopment simplehttpserver - 4.3.1 + 4.4.0 simplehttpserver 📕 SimpleHttpServer :: Simplified implementation of the sun http server :: Simplified handlers to execute complex operations diff --git a/src/main/java/com/kttdevelopment/simplehttpserver/ContextUtil.java b/src/main/java/com/kttdevelopment/simplehttpserver/ContextUtil.java index 6344187..b0d2e29 100644 --- a/src/main/java/com/kttdevelopment/simplehttpserver/ContextUtil.java +++ b/src/main/java/com/kttdevelopment/simplehttpserver/ContextUtil.java @@ -6,7 +6,7 @@ * A utility class used to generate uniform contexts. Applications do not use this class. * * @since 03.05.03 - * @version 4.3.1 + * @version 4.4.0 * @author Ktt Development */ public abstract class ContextUtil { diff --git a/src/main/java/com/kttdevelopment/simplehttpserver/handler/PredicateHandler.java b/src/main/java/com/kttdevelopment/simplehttpserver/handler/PredicateHandler.java index 4ff06af..468151c 100644 --- a/src/main/java/com/kttdevelopment/simplehttpserver/handler/PredicateHandler.java +++ b/src/main/java/com/kttdevelopment/simplehttpserver/handler/PredicateHandler.java @@ -16,7 +16,7 @@ * @see SimpleHttpExchange * @see Predicate * @since 01.00.00 - * @version 03.05.00 + * @version 4.4.0 * @author Ktt Development */ public class PredicateHandler implements HttpHandler { @@ -27,6 +27,7 @@ public class PredicateHandler implements HttpHandler { /** * Creates a predicate handler. * + * @deprecated use {@link PredicateHandler#PredicateHandler(Predicate, HttpHandler, HttpHandler)} * @param trueHandler handler to use if true * @param falseHandler handler to use if false * @param predicate predicate to test @@ -38,12 +39,33 @@ public class PredicateHandler implements HttpHandler { * @since 01.00.00 * @author Ktt Development */ + @Deprecated public PredicateHandler(final HttpHandler trueHandler, final HttpHandler falseHandler, final Predicate predicate){ T = trueHandler; F = falseHandler; this.predicate = predicate; } + /** + * Creates a predicate handler. + * + * @param predicate predicate to test + * @param trueHandler handler to use if true + * @param falseHandler handler to use if false + * + * @see SimpleHttpHandler + * @see HttpHandler + * @see SimpleHttpExchange + * @see Predicate + * @since 4.4.0 + * @author Ktt Development + */ + public PredicateHandler(final Predicate predicate, final HttpHandler trueHandler, final HttpHandler falseHandler){ + this.predicate = predicate; + T = trueHandler; + F = falseHandler; + } + @Override public final void handle(final HttpExchange exchange) throws IOException{ (predicate.test(exchange) ? T : F).handle(exchange); diff --git a/src/main/java/com/kttdevelopment/simplehttpserver/handler/RootHandler.java b/src/main/java/com/kttdevelopment/simplehttpserver/handler/RootHandler.java index 13fbc94..b845a97 100644 --- a/src/main/java/com/kttdevelopment/simplehttpserver/handler/RootHandler.java +++ b/src/main/java/com/kttdevelopment/simplehttpserver/handler/RootHandler.java @@ -9,7 +9,7 @@ * @see SimpleHttpHandler * @see HttpHandler * @since 01.00.00 - * @version 02.00.00 + * @version 4.4.0 * @author Ktt Development */ public class RootHandler extends PredicateHandler { @@ -27,9 +27,9 @@ public class RootHandler extends PredicateHandler { */ public RootHandler(final HttpHandler rootHandler, final HttpHandler elseHandler){ super( + httpExchange -> httpExchange.getRequestURI().getPath().equals("/"), rootHandler, - elseHandler, - httpExchange -> httpExchange.getRequestURI().getPath().equals("/") + elseHandler ); } diff --git a/src/test/java/com/kttdevelopment/simplehttpserver/handlers/PredicateHandlerTests.java b/src/test/java/com/kttdevelopment/simplehttpserver/handlers/PredicateHandlerTests.java index 783db99..668e50b 100644 --- a/src/test/java/com/kttdevelopment/simplehttpserver/handlers/PredicateHandlerTests.java +++ b/src/test/java/com/kttdevelopment/simplehttpserver/handlers/PredicateHandlerTests.java @@ -22,7 +22,7 @@ public void predicate() throws IOException, ExecutionException, InterruptedExcep final boolean condition = System.currentTimeMillis() % 2 == 1; final String context = ""; - server.createContext(context, new PredicateHandler((SimpleHttpHandler) exchange -> exchange.send("A"), (SimpleHttpHandler) exchange -> exchange.send("B"), exchange -> condition)); + server.createContext(context, new PredicateHandler(exchange -> condition, (SimpleHttpHandler) exchange -> exchange.send("A"), (SimpleHttpHandler) exchange -> exchange.send("B"))); server.start(); Assertions.assertFalse(server.getContexts().isEmpty(), "Server did not contain a temporary context");