From 0ddb65e87019fd441fc114338e7064d6088aaa08 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Wed, 8 Apr 2026 19:11:49 +0200 Subject: [PATCH 1/3] Add: ResponseDispatcher field to CommandHandler --- .../server/network/command/execution/CommandHandler.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/execution/CommandHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/execution/CommandHandler.java index aa9c4da..f26af5f 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/execution/CommandHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/execution/CommandHandler.java @@ -2,6 +2,7 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.command.execution; import ch.unibas.dmi.dbis.cs108.casono.server.network.command.execution.checks.HandlerCheck; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.Request; +import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.dispatcher.ResponseDispatcher; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -13,6 +14,11 @@ import java.util.List; */ public abstract class CommandHandler { private final List checks = new ArrayList<>(); + protected final ResponseDispatcher responseDispatcher; + + public CommandHandler(ResponseDispatcher responseDispatcher) { + this.responseDispatcher = responseDispatcher; + } /** * Adds a handler check to be performed before request execution. From 01934b76f3005d24cfe6fefbfc935764d2944f4a Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Wed, 8 Apr 2026 19:12:36 +0200 Subject: [PATCH 2/3] Refactor: Existing handler to using constructor of superclass --- .../server/app/commands/check_nick/CheckUsernameHandler.java | 3 +-- .../cs108/casono/server/app/commands/login/LoginHandler.java | 3 +-- .../cs108/casono/server/app/commands/logout/LogoutHandler.java | 3 +-- .../cs108/casono/server/app/commands/ping/PingHandler.java | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameHandler.java index 95debb0..0c70e55 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/check_nick/CheckUsernameHandler.java @@ -8,7 +8,6 @@ import java.util.Optional; /** Handles {@link CheckUsernameRequest}s to check whether a username is available. */ public class CheckUsernameHandler extends CommandHandler { - private final ResponseDispatcher responseDispatcher; private final UserRegistry userRegistry; /** @@ -18,7 +17,7 @@ public class CheckUsernameHandler extends CommandHandler { * @param userRegistry the registry used to look up existing users */ public CheckUsernameHandler(ResponseDispatcher responseDispatcher, UserRegistry userRegistry) { - this.responseDispatcher = responseDispatcher; + super(responseDispatcher); this.userRegistry = userRegistry; } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/login/LoginHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/login/LoginHandler.java index 4215b3b..5f455ca 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/login/LoginHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/login/LoginHandler.java @@ -14,7 +14,6 @@ import java.util.Optional; * already */ public class LoginHandler extends CommandHandler { - private final ResponseDispatcher responseDispatcher; private final UserRegistry userRegistry; private final UserFactory userFactory; @@ -25,7 +24,7 @@ public class LoginHandler extends CommandHandler { * @param userRegistry the registry used to look up existing users and create the new one */ public LoginHandler(ResponseDispatcher responseDispatcher, UserRegistry userRegistry) { - this.responseDispatcher = responseDispatcher; + super(responseDispatcher); this.userRegistry = userRegistry; this.userFactory = new UserFactory(userRegistry); } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/logout/LogoutHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/logout/LogoutHandler.java index 4ef9f98..199c207 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/logout/LogoutHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/logout/LogoutHandler.java @@ -8,7 +8,6 @@ import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.dispatch /** Handles {@link LogoutRequest} to logout connected user. */ public class LogoutHandler extends CommandHandler { - private final ResponseDispatcher responseDispatcher; private final UserRegistry userRegistry; /** @@ -18,7 +17,7 @@ public class LogoutHandler extends CommandHandler { * @param userRegistry registry responsible for tracking connected user sessions */ public LogoutHandler(ResponseDispatcher responseDispatcher, UserRegistry userRegistry) { - this.responseDispatcher = responseDispatcher; + super(responseDispatcher); this.userRegistry = userRegistry; } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/ping/PingHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/ping/PingHandler.java index aed42e5..69f389e 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/ping/PingHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/app/commands/ping/PingHandler.java @@ -6,7 +6,6 @@ import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.dispatch /** Handler for {@link PingRequest}. */ public class PingHandler extends CommandHandler { - private final ResponseDispatcher responseDispatcher; /** * Create a new PingHandler to execute {@link PingRequest}s @@ -14,7 +13,7 @@ public class PingHandler extends CommandHandler { * @param responseDispatcher dispatcher used to send responses back to clients */ public PingHandler(ResponseDispatcher responseDispatcher) { - this.responseDispatcher = responseDispatcher; + super(responseDispatcher); } /** From 61e77be35c1772609fff44b256ec23a02241ae01 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Wed, 8 Apr 2026 19:13:10 +0200 Subject: [PATCH 3/3] Docs: Write JavaDoc for newly added constructor --- .../server/network/command/execution/CommandHandler.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/execution/CommandHandler.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/execution/CommandHandler.java index f26af5f..f0f8b97 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/execution/CommandHandler.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/execution/CommandHandler.java @@ -16,6 +16,11 @@ public abstract class CommandHandler { private final List checks = new ArrayList<>(); protected final ResponseDispatcher responseDispatcher; + /** + * Constructs a CommandHandler with the specified ResponseDispatcher. + * + * @param responseDispatcher the ResponseDispatcher instance used to send responses to clients. + */ public CommandHandler(ResponseDispatcher responseDispatcher) { this.responseDispatcher = responseDispatcher; }