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