package com.tddinaction.appendix.easymock; import java.util.HashMap; import java.util.Map; public class InternetRelayChat { private Map<String, Client> clients = new HashMap<String, Client>(); public Prompt join(final String nickname, Client user) { clients.put(nickname, user); return new Prompt() { @Override public void say(String message) { deliverMessage(nickname, message); } }; } protected void deliverMessage(String from, String message) { for (String nickname : clients.keySet()) { if (!nickname.equals(from)) { clients.get(nickname).onMessage(from, message); } } } }