Create CommandRouter and CommandHandler to execute request #206

Merged
lars.winzer merged 12 commits from feat/14-commandrouter-and-commandhandler into main 2026-03-26 18:23:19 +01:00
Showing only changes of commit fd17b49ed9 - Show all commits
@@ -0,0 +1,24 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.command;
import java.util.HashMap;
import java.util.Map;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Request;
public class CommandRouter {
private final Map<Class<? extends Request>, CommandHandler> handlers = new HashMap<>();
public void register(Class<? extends Request> request, CommandHandler handler) {
handlers.put(request, handler);
}
public void execute(Request request) {
CommandHandler handler = handlers.get(request.getClass());
if (handler == null) {
String requestName = request.getClass().toString();
throw new UnknownRequestException("Unable to execute request " + requestName + ". Type unknown", requestName);
}
handler.execute(request);
}
}