28 lines
767 B
Java
28 lines
767 B
Java
package mediator;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Concrete Mediator — the chat room that routes messages between users.
|
|
* Users talk to ChatRoom; ChatRoom talks to users. Nobody else talks to anybody.
|
|
*/
|
|
public class ChatRoom implements ChatMediator {
|
|
private final List<User> users = new ArrayList<>();
|
|
|
|
@Override
|
|
public void addUser(User user) {
|
|
users.add(user);
|
|
System.out.println(" [ChatRoom] " + user.getName() + " joined the room");
|
|
}
|
|
|
|
@Override
|
|
public void sendMessage(String message, User sender) {
|
|
for (User user : users) {
|
|
if (user != sender) { // don't echo back to sender
|
|
user.receive(message, sender.getName());
|
|
}
|
|
}
|
|
}
|
|
}
|