Chore: Move request related files into own folder

This commit is contained in:
Lars Simon Winzer
2026-03-30 17:41:55 +02:00
parent b10b736321
commit 8b8ac9ccc0
15 changed files with 32 additions and 18 deletions
@@ -1,6 +1,6 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.command; 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> { public interface CommandHandler<T extends Request> {
void execute(T request); void execute(T request);
@@ -1,9 +1,10 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.command; 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.HashMap;
import java.util.Map; import java.util.Map;
import ch.unibas.dmi.dbis.cs108.casono.server.network.request.Request;
public class CommandRouter { public class CommandRouter {
private final Map<Class<? extends Request>, CommandHandler<?>> handlers = new HashMap<>(); private final Map<Class<? extends Request>, CommandHandler<?>> handlers = new HashMap<>();
@@ -1,5 +1,8 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser; 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 * Parser to convert the PrimitiveRequest to a Request and performing checks for required fields and
* data types * data types
@@ -3,6 +3,9 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.parser;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; 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 */ /** Dispatcher all CommandParser are registered in */
public class CommandParserDispatcher { public class CommandParserDispatcher {
private final Map<String, CommandParser> parsers = new HashMap<>(); private final Map<String, CommandParser> parsers = new HashMap<>();
@@ -1,5 +1,6 @@
package ch.unibas.dmi.dbis.cs108.casono.server.network.parser; 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.RawToken;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.Token; import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.Token;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.TokenClassifier; 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. */ /** Exception thrown when a required parameter key is not found. */
public class MissingParameterException extends RuntimeException { 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. */ /** Exception thrown when a parameter value cannot be converted to the requested type. */
public class ParameterParseException extends RuntimeException { 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 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 */ /** Created by the ProtocolParser to allow easy access to the request contents */
public record PrimitiveRequest( public record PrimitiveRequest(
RequestContext context, String command, List<Parameter> parameters) {} 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; 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; 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.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; 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. * 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. * 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.DisconnectEvent;
import ch.unibas.dmi.dbis.cs108.casono.server.network.events.EventBus; 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.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.ProtocolParser;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.ProtocolParserException; 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.request.PrimitiveRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.Request; import ch.unibas.dmi.dbis.cs108.casono.server.network.request.RawRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.parser.RequestContext; 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.RawPacket;
import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TransportLayer; import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TransportLayer;
import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.TokenizerException; import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.TokenizerException;