package net.sf.colossus.server; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import net.sf.colossus.client.IClient; import net.sf.colossus.common.Constants; public class MessageRecorder { private static final Logger LOGGER = Logger .getLogger(MessageRecorder.class.getName()); ArrayList<Message> messages; public MessageRecorder() { LOGGER.log(Level.INFO, "MessageRecorder instantiated"); messages = new ArrayList<Message>(); } public void recordMessageToClient(IClient client, String messageText) { String[] tokens = messageText.split(" ~ "); String command = tokens[0]; if (command.equals(Constants.pingRequest) || command.equals(Constants.serverConnectionOK)) { return; } Message message = new Message(client, messageText, command); messages.add(message); } public void printMessagesToConsole(IClient client) { System.out.println("\n"); System.out.println("BEGIN messages"); System.out.println("=============="); for (Message message : messages) { if (message.getClient().equals(client)) { String messageText = message.getText(); String shortText = messageText; if (messageText.length() > 500) { shortText = messageText.substring(0, 497) + "..."; } System.out.println(shortText); } } System.out.println("END messages\n\n"); } private class Message { private final IClient client; private final String message; private final String command; public Message(IClient client, String message, String command) { this.client = client; this.message = message; this.command = command; } public IClient getClient() { return client; } public String getText() { return message; } @SuppressWarnings("unused") public String getCommand() { return command; } } }