Java Doc and CodeStyle improvements
This commit is contained in:
parent
77b3057911
commit
5f6266c017
|
@ -17,21 +17,31 @@ import java.io.IOException;
|
||||||
|
|
||||||
import static ch.zhaw.pm2.multichat.protocol.ConnectionHandler.State.*;
|
import static ch.zhaw.pm2.multichat.protocol.ConnectionHandler.State.*;
|
||||||
|
|
||||||
|
|
||||||
public class ChatWindowController {
|
public class ChatWindowController {
|
||||||
private ClientConnectionHandler connectionHandler;
|
private ClientConnectionHandler connectionHandler;
|
||||||
private ClientMessageList messages;
|
private ClientMessageList messages;
|
||||||
|
|
||||||
private final WindowCloseHandler windowCloseHandler = new WindowCloseHandler();
|
private final WindowCloseHandler windowCloseHandler = new WindowCloseHandler();
|
||||||
|
|
||||||
@FXML private Pane rootPane;
|
@FXML
|
||||||
@FXML private TextField serverAddressField;
|
private Pane rootPane;
|
||||||
@FXML private TextField serverPortField;
|
@FXML
|
||||||
@FXML private TextField userNameField;
|
private TextField serverAddressField;
|
||||||
@FXML private TextField messageField;
|
@FXML
|
||||||
@FXML private TextArea messageArea;
|
private TextField serverPortField;
|
||||||
@FXML private Button connectButton;
|
@FXML
|
||||||
@FXML private Button sendButton;
|
private TextField userNameField;
|
||||||
@FXML private TextField filterValue;
|
@FXML
|
||||||
|
private TextField messageField;
|
||||||
|
@FXML
|
||||||
|
private TextArea messageArea;
|
||||||
|
@FXML
|
||||||
|
private Button connectButton;
|
||||||
|
@FXML
|
||||||
|
private Button sendButton;
|
||||||
|
@FXML
|
||||||
|
private TextField filterValue;
|
||||||
|
|
||||||
|
|
||||||
public void setMessages(ClientMessageList messages) {
|
public void setMessages(ClientMessageList messages) {
|
||||||
|
@ -39,7 +49,7 @@ public class ChatWindowController {
|
||||||
messageListener();
|
messageListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setConnectionHandler(ClientConnectionHandler connectionHandler){
|
public void setConnectionHandler(ClientConnectionHandler connectionHandler) {
|
||||||
this.connectionHandler = connectionHandler;
|
this.connectionHandler = connectionHandler;
|
||||||
startConnectionHandlerListener();
|
startConnectionHandlerListener();
|
||||||
serverAddressField.setText(connectionHandler.getServerAddressProperty().get());
|
serverAddressField.setText(connectionHandler.getServerAddressProperty().get());
|
||||||
|
@ -51,7 +61,7 @@ public class ChatWindowController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void toggleConnection () {
|
private void toggleConnection() {
|
||||||
if (connectionHandler == null || connectionHandler.getStateProperty().get() != CONNECTED) {
|
if (connectionHandler == null || connectionHandler.getStateProperty().get() != CONNECTED) {
|
||||||
connect();
|
connect();
|
||||||
} else {
|
} else {
|
||||||
|
@ -59,16 +69,20 @@ public class ChatWindowController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void connect() {
|
private void connect() {
|
||||||
try {
|
try {
|
||||||
messages.clear(); // clear message list
|
messages.clear(); // clear message list
|
||||||
startConnectionHandler();
|
startConnectionHandler();
|
||||||
connectionHandler.connect();
|
connectionHandler.connect();
|
||||||
} catch(ChatProtocolException | IOException e) {
|
} catch (ChatProtocolException | IOException e) {
|
||||||
addError(e.getMessage());
|
addError(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initiates disconnecting of the connectionHandler, also checks if connectionHandler is avaible.
|
||||||
|
*/
|
||||||
private void disconnect() {
|
private void disconnect() {
|
||||||
if (connectionHandler == null) {
|
if (connectionHandler == null) {
|
||||||
addError("No connection handler");
|
addError("No connection handler");
|
||||||
|
@ -81,6 +95,9 @@ public class ChatWindowController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
private void message() {
|
private void message() {
|
||||||
String messageString = messageField.getText().strip();
|
String messageString = messageField.getText().strip();
|
||||||
|
@ -98,13 +115,13 @@ public class ChatWindowController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void applyFilter( ) {
|
private void applyFilter() {
|
||||||
Platform.runLater(() -> this.messageArea.setText(messages.getFilteredMessages(filterValue.getText().strip())));
|
Platform.runLater(() -> this.messageArea.setText(messages.getFilteredMessages(filterValue.getText().strip())));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startConnectionHandler() throws IOException {
|
private void startConnectionHandler() throws IOException {
|
||||||
String userName = userNameField.getText();
|
String userName = userNameField.getText();
|
||||||
if(!userName.contains(" ")) {
|
if (!userName.contains(" ")) {
|
||||||
String serverAddress = serverAddressField.getText();
|
String serverAddress = serverAddressField.getText();
|
||||||
int serverPort = Integer.parseInt(serverPortField.getText());
|
int serverPort = Integer.parseInt(serverPortField.getText());
|
||||||
connectionHandler.initialize(serverAddress, serverPort, userName);
|
connectionHandler.initialize(serverAddress, serverPort, userName);
|
||||||
|
@ -128,7 +145,7 @@ public class ChatWindowController {
|
||||||
connectButton.setText((newState == CONNECTED || newState == CONFIRM_DISCONNECT) ? "Disconnect" : "Connect");
|
connectButton.setText((newState == CONNECTED || newState == CONFIRM_DISCONNECT) ? "Disconnect" : "Connect");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if(newState == DISCONNECTED){
|
if (newState == DISCONNECTED) {
|
||||||
connectionHandler.stopReceiving();
|
connectionHandler.stopReceiving();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,6 +217,7 @@ public class ChatWindowController {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void messageListener() {
|
private void messageListener() {
|
||||||
messages.getChangedProperty().addListener(new ChangeListener<Boolean>() {
|
messages.getChangedProperty().addListener(new ChangeListener<Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -13,19 +13,20 @@ import java.net.SocketException;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static ch.zhaw.pm2.multichat.protocol.ConnectionHandler.State.*;
|
import static ch.zhaw.pm2.multichat.protocol.ConnectionHandler.State.*;
|
||||||
|
|
||||||
public class ClientConnectionHandler extends ConnectionHandler implements Runnable {
|
public class ClientConnectionHandler extends ConnectionHandler implements Runnable {
|
||||||
|
|
||||||
private final Pattern messagePattern = Pattern.compile( "^(?:@(\\S*))?\\s*(.*)$" );
|
private final Pattern messagePattern = Pattern.compile("^(?:@(\\S*))?\\s*(.*)$");
|
||||||
|
|
||||||
private SimpleStringProperty userName;
|
private SimpleStringProperty userName;
|
||||||
private SimpleObjectProperty<State> state;
|
private final SimpleObjectProperty<State> state;
|
||||||
private ClientMessageList messages;
|
private final ClientMessageList messages;
|
||||||
private SimpleStringProperty serverAddress;
|
private final SimpleStringProperty serverAddress;
|
||||||
private SimpleIntegerProperty serverPort;
|
private final SimpleIntegerProperty serverPort;
|
||||||
|
|
||||||
public ClientConnectionHandler(ClientMessageList messages) {
|
public ClientConnectionHandler(ClientMessageList messages) {
|
||||||
super();
|
super();
|
||||||
this.messages = messages;
|
this.messages = messages;
|
||||||
state = new SimpleObjectProperty<>(State.NEW);
|
state = new SimpleObjectProperty<>(State.NEW);
|
||||||
|
@ -39,24 +40,30 @@ public class ClientConnectionHandler extends ConnectionHandler implements Runnab
|
||||||
this.serverAddress.set(serverAddress);
|
this.serverAddress.set(serverAddress);
|
||||||
this.serverPort.set(serverPort);
|
this.serverPort.set(serverPort);
|
||||||
setConnection(NetworkHandler.openConnection(serverAddress, serverPort));
|
setConnection(NetworkHandler.openConnection(serverAddress, serverPort));
|
||||||
this.userName = new SimpleStringProperty((userName == null || userName.isBlank())? USER_NONE : userName);
|
this.userName = new SimpleStringProperty((userName == null || userName.isBlank()) ? USER_NONE : userName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SimpleStringProperty getServerAddressProperty() { return serverAddress; }
|
public SimpleStringProperty getServerAddressProperty() {
|
||||||
|
return serverAddress;
|
||||||
|
}
|
||||||
|
|
||||||
public SimpleIntegerProperty getServerPortProperty() { return serverPort; }
|
public SimpleIntegerProperty getServerPortProperty() {
|
||||||
|
return serverPort;
|
||||||
|
}
|
||||||
|
|
||||||
public SimpleObjectProperty<State> getStateProperty() {
|
public SimpleObjectProperty<State> getStateProperty() {
|
||||||
return this.state;
|
return this.state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SimpleStringProperty getUserNameProperty() { return userName; }
|
public SimpleStringProperty getUserNameProperty() {
|
||||||
|
return userName;
|
||||||
|
}
|
||||||
|
|
||||||
public void setState (State newState) {
|
public void setState(State newState) {
|
||||||
state.set(newState);
|
state.set(newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run () {
|
public void run() {
|
||||||
startReceiving();
|
startReceiving();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,9 +84,9 @@ public class ClientConnectionHandler extends ConnectionHandler implements Runnab
|
||||||
System.out.println("Connection terminated by remote");
|
System.out.println("Connection terminated by remote");
|
||||||
this.setState(DISCONNECTED);
|
this.setState(DISCONNECTED);
|
||||||
System.err.println("Unregistered because connection terminated" + e.getMessage());
|
System.err.println("Unregistered because connection terminated" + e.getMessage());
|
||||||
} catch(IOException e) {
|
} catch (IOException e) {
|
||||||
System.err.println("Communication error" + e);
|
System.err.println("Communication error" + e);
|
||||||
} catch(ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
System.err.println("Received object of unknown type" + e.getMessage());
|
System.err.println("Received object of unknown type" + e.getMessage());
|
||||||
}
|
}
|
||||||
System.out.println("Stopped Connection Handler");
|
System.out.println("Stopped Connection Handler");
|
||||||
|
@ -131,11 +138,11 @@ public class ClientConnectionHandler extends ConnectionHandler implements Runnab
|
||||||
this.userName.set(reciever);
|
this.userName.set(reciever);
|
||||||
this.serverPort.set(getConnection().getRemotePort());
|
this.serverPort.set(getConnection().getRemotePort());
|
||||||
this.serverAddress.set(getConnection().getRemoteHost());
|
this.serverAddress.set(getConnection().getRemoteHost());
|
||||||
messages.addMessage(new Message(Message.MessageType.INFO,sender,reciever,payload));
|
messages.addMessage(new Message(Message.MessageType.INFO, sender, reciever, payload));
|
||||||
System.out.println("CONFIRM: " + payload);
|
System.out.println("CONFIRM: " + payload);
|
||||||
this.setState(CONNECTED);
|
this.setState(CONNECTED);
|
||||||
} else if (state.get() == CONFIRM_DISCONNECT) {
|
} else if (state.get() == CONFIRM_DISCONNECT) {
|
||||||
messages.addMessage(new Message(Message.MessageType.INFO,sender,reciever,payload));
|
messages.addMessage(new Message(Message.MessageType.INFO, sender, reciever, payload));
|
||||||
System.out.println("CONFIRM: " + payload);
|
System.out.println("CONFIRM: " + payload);
|
||||||
this.setState(DISCONNECTED);
|
this.setState(DISCONNECTED);
|
||||||
} else {
|
} else {
|
||||||
|
@ -146,7 +153,7 @@ public class ClientConnectionHandler extends ConnectionHandler implements Runnab
|
||||||
System.out.println("DISCONNECT: Already in disconnected: " + payload);
|
System.out.println("DISCONNECT: Already in disconnected: " + payload);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
messages.addMessage(new Message(Message.MessageType.INFO,sender,reciever,payload));
|
messages.addMessage(new Message(Message.MessageType.INFO, sender, reciever, payload));
|
||||||
System.out.println("DISCONNECT: " + payload);
|
System.out.println("DISCONNECT: " + payload);
|
||||||
this.setState(DISCONNECTED);
|
this.setState(DISCONNECTED);
|
||||||
} else if (type.equals(getDataTypeMessage())) {
|
} else if (type.equals(getDataTypeMessage())) {
|
||||||
|
@ -154,10 +161,10 @@ public class ClientConnectionHandler extends ConnectionHandler implements Runnab
|
||||||
System.out.println("MESSAGE: Illegal state " + state + " for message: " + payload);
|
System.out.println("MESSAGE: Illegal state " + state + " for message: " + payload);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
messages.addMessage(new Message(Message.MessageType.MESSAGE,sender,reciever,payload));
|
messages.addMessage(new Message(Message.MessageType.MESSAGE, sender, reciever, payload));
|
||||||
System.out.println("MESSAGE: From " + sender + " to " + reciever + ": "+ payload);
|
System.out.println("MESSAGE: From " + sender + " to " + reciever + ": " + payload);
|
||||||
} else if (type.equals(getDataTypeError())) {
|
} else if (type.equals(getDataTypeError())) {
|
||||||
messages.addMessage(new Message(Message.MessageType.ERROR,sender,reciever,payload));
|
messages.addMessage(new Message(Message.MessageType.ERROR, sender, reciever, payload));
|
||||||
System.out.println("ERROR: " + payload);
|
System.out.println("ERROR: " + payload);
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Unknown data type received: " + type);
|
System.out.println("Unknown data type received: " + type);
|
||||||
|
@ -172,18 +179,18 @@ public class ClientConnectionHandler extends ConnectionHandler implements Runnab
|
||||||
if (getConnection().isAvailable()) {
|
if (getConnection().isAvailable()) {
|
||||||
new StringBuilder();
|
new StringBuilder();
|
||||||
String data = new StringBuilder()
|
String data = new StringBuilder()
|
||||||
.append(sender+"\n")
|
.append(sender + "\n")
|
||||||
.append(receiver+"\n")
|
.append(receiver + "\n")
|
||||||
.append(type+"\n")
|
.append(type + "\n")
|
||||||
.append(payload+"\n")
|
.append(payload + "\n")
|
||||||
.toString();
|
.toString();
|
||||||
try {
|
try {
|
||||||
getConnection().send(data);
|
getConnection().send(data);
|
||||||
} catch (SocketException e) {
|
} catch (SocketException e) {
|
||||||
System.err.println("Connection closed: " + e.getMessage());
|
System.err.println("Connection closed: " + e.getMessage());
|
||||||
} catch (EOFException e) {
|
} catch (EOFException e) {
|
||||||
System.out.println("Connection terminated by remote");
|
System.out.println("Connection terminated by remote");
|
||||||
} catch(IOException e) {
|
} catch (IOException e) {
|
||||||
System.err.println("Communication error: " + e.getMessage());
|
System.err.println("Communication error: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -191,13 +198,14 @@ public class ClientConnectionHandler extends ConnectionHandler implements Runnab
|
||||||
|
|
||||||
public void connect() throws ChatProtocolException {
|
public void connect() throws ChatProtocolException {
|
||||||
if (state.get() != NEW) throw new ChatProtocolException("Illegal state for connect: " + state);
|
if (state.get() != NEW) throw new ChatProtocolException("Illegal state for connect: " + state);
|
||||||
this.sendData(userName.get(), USER_NONE, getDataTypeConnect(),null);
|
this.sendData(userName.get(), USER_NONE, getDataTypeConnect(), null);
|
||||||
this.setState(CONFIRM_CONNECT);
|
this.setState(CONFIRM_CONNECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disconnect() throws ChatProtocolException {
|
public void disconnect() throws ChatProtocolException {
|
||||||
if (state.get() != NEW && state.get() != CONNECTED) throw new ChatProtocolException("Illegal state for disconnect: " + state);
|
if (state.get() != NEW && state.get() != CONNECTED)
|
||||||
this.sendData(userName.get(), USER_NONE, getDataTypeDisconnect(),null);
|
throw new ChatProtocolException("Illegal state for disconnect: " + state);
|
||||||
|
this.sendData(userName.get(), USER_NONE, getDataTypeDisconnect(), null);
|
||||||
this.setState(CONFIRM_DISCONNECT);
|
this.setState(CONFIRM_DISCONNECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,11 +216,11 @@ public class ClientConnectionHandler extends ConnectionHandler implements Runnab
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
String receiver = matcher.group(1);
|
String receiver = matcher.group(1);
|
||||||
String message = matcher.group(2);
|
String message = matcher.group(2);
|
||||||
if(message.length() < 1){
|
if (message.length() < 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (receiver == null || receiver.isBlank()) receiver = ClientConnectionHandler.USER_ALL;
|
if (receiver == null || receiver.isBlank()) receiver = ClientConnectionHandler.USER_ALL;
|
||||||
this.sendData(userName.get(), receiver, getDataTypeMessage(),message);
|
this.sendData(userName.get(), receiver, getDataTypeMessage(), message);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -7,35 +7,38 @@ import java.util.List;
|
||||||
|
|
||||||
public class ClientMessageList {
|
public class ClientMessageList {
|
||||||
private List<Message> messages = new ArrayList<>();
|
private List<Message> messages = new ArrayList<>();
|
||||||
private SimpleBooleanProperty changed = new SimpleBooleanProperty(false);
|
private final SimpleBooleanProperty changed = new SimpleBooleanProperty(false);
|
||||||
|
|
||||||
public void addMessage(Message message) {
|
public void addMessage(Message message) {
|
||||||
messages.add(message);
|
messages.add(message);
|
||||||
changed.set(!changed.get());
|
changed.set(!changed.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getFilteredMessages(String filter) {
|
public String getFilteredMessages(String filter) {
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
boolean showAll = filter == null || filter.isBlank();
|
boolean showAll = filter == null || filter.isBlank();
|
||||||
for(Message message : messages) {
|
for (Message message : messages) {
|
||||||
if(showAll || message.matchesFilter(filter))
|
if (showAll || message.matchesFilter(filter)) {
|
||||||
{
|
|
||||||
switch (message.getType()) {
|
switch (message.getType()) {
|
||||||
case MESSAGE -> result.append(String.format("[%s -> %s] %s\n", message.getSender(), message.getReceiver(), message.getText()));
|
case MESSAGE ->
|
||||||
|
result.append(String.format("[%s -> %s] %s\n", message.getSender(), message.getReceiver(), message.getText()));
|
||||||
case ERROR -> result.append(String.format("[ERROR] %s\n", message.getText()));
|
case ERROR -> result.append(String.format("[ERROR] %s\n", message.getText()));
|
||||||
case INFO -> result.append(String.format("[INFO] %s\n", message.getText()));
|
case INFO -> result.append(String.format("[INFO] %s\n", message.getText()));
|
||||||
default -> result.append(String.format("[ERROR] %s\n", "Unexpected message type: " + message.getType()));
|
default ->
|
||||||
|
result.append(String.format("[ERROR] %s\n", "Unexpected message type: " + message.getType()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clear() {
|
public void clear() {
|
||||||
messages = new ArrayList<>();
|
messages = new ArrayList<>();
|
||||||
changed.set(!changed.get());
|
changed.set(!changed.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public SimpleBooleanProperty getChangedProperty() { return changed; }
|
public SimpleBooleanProperty getChangedProperty() {
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,8 @@ import javafx.scene.layout.Pane;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
public class ClientUI extends Application {
|
public class ClientUI extends Application {
|
||||||
private ClientMessageList clientMessageList = new ClientMessageList();
|
private final ClientMessageList clientMessageList = new ClientMessageList();
|
||||||
private ClientConnectionHandler connectionHandler = new ClientConnectionHandler(clientMessageList);
|
private final ClientConnectionHandler connectionHandler = new ClientConnectionHandler(clientMessageList);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start(Stage primaryStage) {
|
public void start(Stage primaryStage) {
|
||||||
|
@ -34,7 +34,7 @@ public class ClientUI extends Application {
|
||||||
primaryStage.setTitle("Multichat Client");
|
primaryStage.setTitle("Multichat Client");
|
||||||
primaryStage.show();
|
primaryStage.show();
|
||||||
primaryStage.setMinWidth(primaryStage.getWidth()); //use automatically computed size as Minimum Size.
|
primaryStage.setMinWidth(primaryStage.getWidth()); //use automatically computed size as Minimum Size.
|
||||||
} catch(Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println("Error starting up UI" + e.getMessage());
|
System.err.println("Error starting up UI" + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
package ch.zhaw.pm2.multichat.client;
|
package ch.zhaw.pm2.multichat.client;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
A Message object represents one Message of a client. Can be stored in ClientMessageList.
|
* A Message object represents one Message of a client. Can be stored in ClientMessageList.
|
||||||
*/
|
*/
|
||||||
public class Message {
|
public class Message {
|
||||||
private MessageType type;
|
private final MessageType type;
|
||||||
private String sender;
|
private final String sender;
|
||||||
private String receiver;
|
private final String receiver;
|
||||||
private String text;
|
private final String text;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor of Message. Needs all Information about a Message to save them.
|
* Constructor of Message. Needs all Information about a Message to save them.
|
||||||
* @param type Message (if it's a message typed by a user), Error or Information (if it is generated automatically, in this case sender and reciever will be null)
|
*
|
||||||
* @param sender The User who has sent the message.
|
* @param type Message (if it's a message typed by a user), Error or Information (if it is generated automatically, in this case sender and reciever will be null)
|
||||||
|
* @param sender The User who has sent the message.
|
||||||
* @param receiver The User who should recieve the message.
|
* @param receiver The User who should recieve the message.
|
||||||
* @param text The Text of the message.
|
* @param text The Text of the message.
|
||||||
*/
|
*/
|
||||||
public Message(MessageType type, String sender, String receiver, String text) {
|
public Message(MessageType type, String sender, String receiver, String text) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
@ -25,13 +26,14 @@ public class Message {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the Filter String is contained in one of the datafields sender, receiver or text
|
* Checks if the Filter String is contained in one of the datafields sender, receiver or text
|
||||||
|
*
|
||||||
* @param filter The Filter String
|
* @param filter The Filter String
|
||||||
* @return true if it the Filter String is contained in a datafield.
|
* @return true if it the Filter String is contained in a datafield.
|
||||||
*/
|
*/
|
||||||
public boolean matchesFilter(String filter){
|
public boolean matchesFilter(String filter) {
|
||||||
return (sender != null && sender.contains(filter)) ||
|
return (sender != null && sender.contains(filter)) ||
|
||||||
(receiver != null && receiver.contains(filter)) ||
|
(receiver != null && receiver.contains(filter)) ||
|
||||||
(text != null && text.contains(filter));
|
(text != null && text.contains(filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -63,7 +65,7 @@ public class Message {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enummeration of Message Types.
|
* Enumeration of Message Types.
|
||||||
*/
|
*/
|
||||||
public enum MessageType {
|
public enum MessageType {
|
||||||
INFO, MESSAGE, ERROR;
|
INFO, MESSAGE, ERROR;
|
||||||
|
|
|
@ -19,6 +19,10 @@ public class Server {
|
||||||
// Connection registry
|
// Connection registry
|
||||||
private Map<String,ServerConnectionHandler> connections = new HashMap<>();
|
private Map<String,ServerConnectionHandler> connections = new HashMap<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param args
|
||||||
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// Parse arguments for server port.
|
// Parse arguments for server port.
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue