import java.util.HashMap; import java.util.Map; public class RoomRegistryImpl extends RoomRegistrySkel { protected Map salas_registradas; //key: nome da sala, value: ChatRoom object public RoomRegistryImpl() { super(); salas_registradas = new HashMap(); } public RoomRegistryImpl(String key) { super(key); salas_registradas = new HashMap(); } @Override public ChatRoom findRoom(String name) { // TODO Auto-generated method stub echo("findRoom -> "+name); if (salas_registradas.containsKey(name)){ return (ChatRoom) salas_registradas.get(name); }else{ echo("A sala "+name+" procurada nao existe!"); return null; } } @Override public Map getRooms() { echo("getRooms"); return salas_registradas; } /** * Cria uma nova sala */ public ChatRoom newRoom(String name) { Map rooms = salas_registradas; if (! rooms.containsKey("name")){ //crio impl do chatroom ChatRoom chatroom = new ChatRoomImpl(name); rooms.put(name, chatroom); echo("room created: "+name); return chatroom; }else{ echo("room ["+name+"] ja existe!!!"); return null; } } /** * Registra um objeto chatroom migrado de forma transparente para o usuario * @param name * @param chatroom */ protected void register(String name, ChatRoom chatroom) { echo ("Sala "+name+" migrada registrada"); salas_registradas.put(name, chatroom); } public Map filhos() { return salas_registradas; } }