From 52c347d233dcab7222f1b3a0bc3f883b9e9b7ff4 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Thu, 26 Mar 2026 17:55:26 +0100 Subject: [PATCH] Add: Modify CommandRouter to use generic CommandHandler type --- .../casono/server/network/command/CommandRouter.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/CommandRouter.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/CommandRouter.java index 186c1fe..282c6c9 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/CommandRouter.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/command/CommandRouter.java @@ -6,14 +6,16 @@ import java.util.Map; import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Request; public class CommandRouter { - private final Map, CommandHandler> handlers = new HashMap<>(); + private final Map, CommandHandler> handlers = new HashMap<>(); - public void register(Class request, CommandHandler handler) { + public void register(Class request, CommandHandler handler) { handlers.put(request, handler); } + // Safe, because during registration, it's ensured that the provided CommandHandler only receives requests it can handle. + @SuppressWarnings("unchecked") public void execute(Request request) { - CommandHandler handler = handlers.get(request.getClass()); + CommandHandler handler = (CommandHandler) handlers.get(request.getClass()); if (handler == null) { String requestName = request.getClass().toString();