Refactor: ProtocolParser to accept payload string and return RawRequest
Prior it took the RawPacket as an argument and returned an PrimitiveRequest
This commit is contained in:
+3
-4
@@ -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<RawToken> rawTokens = Tokenizer.tokenize(packet.payload());
|
||||
public static RawRequest parse(String payload) {
|
||||
List<RawToken> rawTokens = Tokenizer.tokenize(payload);
|
||||
List<Token> tokens = TokenClassifier.classify(rawTokens);
|
||||
|
||||
Iterator<Token> iterator = tokens.iterator();
|
||||
String command = readCommand(iterator);
|
||||
List<Parameter> parameters = readParameters(iterator);
|
||||
|
||||
return new PrimitiveRequest(packet.requestId(), command, parameters);
|
||||
return new RawRequest(command, parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+3
-3
@@ -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()));
|
||||
|
||||
Reference in New Issue
Block a user