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");