From 34ad8030733a61737b3b21d4eaafb7a677d2aa8a Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Tue, 24 Mar 2026 18:07:20 +0100 Subject: [PATCH] Refactor: ProtocolParser to accept payload string and return RawRequest Prior it took the RawPacket as an argument and returned an PrimitiveRequest --- .../cs108/casono/server/network/parser/ProtocolParser.java | 7 +++---- .../casono/server/network/sessions/SessionReader.java | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/parser/ProtocolParser.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/parser/ProtocolParser.java index acb48a0..8f8b4d4 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/parser/ProtocolParser.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/parser/ProtocolParser.java @@ -1,6 +1,5 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.parser; -import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.RawPacket; 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; @@ -19,15 +18,15 @@ public class ProtocolParser { * @param packet the RawPacket containing the recieved data * @return created PrimitiveRequest */ - public static PrimitiveRequest parse(RawPacket packet) { - List rawTokens = Tokenizer.tokenize(packet.payload()); + public static RawRequest parse(String payload) { + List rawTokens = Tokenizer.tokenize(payload); List tokens = TokenClassifier.classify(rawTokens); Iterator iterator = tokens.iterator(); String command = readCommand(iterator); List parameters = readParameters(iterator); - return new PrimitiveRequest(packet.requestId(), command, parameters); + return new RawRequest(command, parameters); } /** diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java index 7c2a6c7..c9aa4aa 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java @@ -2,9 +2,9 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network.sessions; 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.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.transport.RawPacket; import ch.unibas.dmi.dbis.cs108.casono.server.network.transport.TransportLayer; import ch.unibas.dmi.dbis.cs108.casono.server.tokenizer.TokenizerException; @@ -36,8 +36,8 @@ public class SessionReader implements Runnable { rawPacket = transport.read(); logger.debug("Recieved: {}", rawPacket); - PrimitiveRequest primitiveRequest = ProtocolParser.parse(rawPacket); - logger.debug("Parsed request to {}", primitiveRequest); + RawRequest rawRequest = ProtocolParser.parse(rawPacket.payload()); + logger.debug("Parsed request to {}", rawRequest); } catch (EOFException e) { logger.info("Client disconnected"); eventBus.publish(new DisconnectEvent(session.getId()));