Restructure server files and folders #212

Merged
lars.winzer merged 16 commits from chore/26-restructure-server-files into main 2026-03-30 18:59:21 +02:00
15 changed files with 32 additions and 18 deletions
Showing only changes of commit 8b8ac9ccc0 - Show all commits
@@ -1,6 +1,6 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.command;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Request;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.Request;
public interface CommandHandler<T extends Request> {
void execute(T request);
@@ -1,9 +1,10 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.command;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Request;
import java.util.HashMap;
import java.util.Map;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.Request;
public class CommandRouter {
private final Map<Class<? extends Request>, CommandHandler<?>> handlers = new HashMap<>();
@@ -1,5 +1,8 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.PrimitiveRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.Request;
/**
* Parser to convert the PrimitiveRequest to a Request and performing checks for required fields and
* data types
@@ -3,6 +3,9 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
import java.util.HashMap;
import java.util.Map;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.PrimitiveRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.Request;
/** Dispatcher all CommandParser are registered in */
public class CommandParserDispatcher {
private final Map<String, CommandParser> parsers = new HashMap<>();
@@ -1,5 +1,6 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.RawRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.RawToken;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.Token;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.TokenClassifier;
@@ -1,5 +0,0 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
import java.util.List;
public record RawRequest(String command, List<Parameter> parameters) {}
@@ -1,4 +1,4 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
package ch.unibas.dmi.dbis.cs108.casono.server.network.request;
/** Exception thrown when a required parameter key is not found. */
public class MissingParameterException extends RuntimeException {
@@ -1,4 +1,4 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
package ch.unibas.dmi.dbis.cs108.casono.server.network.request;
/** Exception thrown when a parameter value cannot be converted to the requested type. */
public class ParameterParseException extends RuntimeException {
@@ -1,7 +1,9 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
package ch.unibas.dmi.dbis.cs108.casono.server.network.request;
import java.util.List;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Parameter;
/** Created by the ProtocolParser to allow easy access to the request contents */
public record PrimitiveRequest(
RequestContext context, String command, List<Parameter> parameters) {}
@@ -0,0 +1,7 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.request;
import java.util.List;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Parameter;
public record RawRequest(String command, List<Parameter> parameters) {}
@@ -1,4 +1,4 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
package ch.unibas.dmi.dbis.cs108.casono.server.network.request;
import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId;
@@ -1,4 +1,4 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
package ch.unibas.dmi.dbis.cs108.casono.server.network.request;
import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId;
@@ -1,9 +1,11 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
package ch.unibas.dmi.dbis.cs108.casono.server.network.request;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Parameter;
/**
* Provides typed access to a request's parameters by indexing them by key.
*
@@ -1,4 +1,4 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
package ch.unibas.dmi.dbis.cs108.casono.server.network.request;
/**
* Functional parser interface used to convert a raw string parameter into a target type.
@@ -4,12 +4,12 @@ import ch.unibas.dmi.dbis.cs108.casono.server.network.command.CommandRouter;
import ch.unibas.dmi.dbis.cs108.casono.server.network.events.DisconnectEvent;
import ch.unibas.dmi.dbis.cs108.casono.server.network.events.EventBus;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.CommandParserDispatcher;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.PrimitiveRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.ProtocolParser;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.ProtocolParserException;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.RawRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Request;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.RequestContext;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.PrimitiveRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.RawRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.Request;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.RequestContext;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.RawPacket;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TransportLayer;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.TokenizerException;