diff --git a/chat/src/main/java/rtgre/modeles/Room.java b/chat/src/main/java/rtgre/modeles/Room.java new file mode 100644 index 0000000..ba96c72 --- /dev/null +++ b/chat/src/main/java/rtgre/modeles/Room.java @@ -0,0 +1,59 @@ +package rtgre.modeles; + +import org.json.JSONObject; + +import java.util.HashSet; +import java.util.Objects; + +public class Room { + protected String roomName; + protected HashSet loginSet; + + + public String getRoomName() { + return roomName; + } + + public HashSet getLoginSet() { + return loginSet; + } + + public Room(String roomName) { + this.roomName = roomName; + this.loginSet = null; + } + + public String abbreviation() { + return this.roomName.split("#")[1].substring(0, 1); + } + + @Override + public String toString() { + return this.roomName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Room room = (Room) o; + return Objects.equals(roomName, room.roomName); + } + + public void add(String login) { + if (loginSet == null) { + loginSet = new HashSet<>(); + } + loginSet.add(login); + } + + public JSONObject toJsonObject() { + return new JSONObject() + .put("room", this.roomName) + .put("loginSet", this.loginSet); + } + + public String toJson() { + return this.toJsonObject().toString(); + } +} diff --git a/chat/src/main/java/rtgre/modeles/RoomMap.java b/chat/src/main/java/rtgre/modeles/RoomMap.java new file mode 100644 index 0000000..039d986 --- /dev/null +++ b/chat/src/main/java/rtgre/modeles/RoomMap.java @@ -0,0 +1,16 @@ +package rtgre.modeles; + +import java.util.TreeMap; + +public class RoomMap extends TreeMap { + public void add(Room room) { + this.put(room.roomName, room); + } + + public void loadDefaultRooms() { + this.add(new Room("#all")); + this.add(new Room("#juniors")); + this.add(new Room("#ducks")); + this.add(new Room("#mice")); + } +}