package room; import java.text.DecimalFormat; import java.util.ArrayList; import account.Account; import account.AccountManager; public class RoomManager { private ArrayList<Room> roomList = new ArrayList<Room>(); private static RoomManager theInstance = null; //通しのroomId int id = 0; private RoomManager(){ } public static RoomManager getInstance(){ if(theInstance == null){ theInstance = new RoomManager(); //最初だけ作成 } return theInstance; } //部屋を増やす public void addRoom(Room room){ roomList.add(room); } //部屋を減らす public void removeRoom(Room room){ roomList.remove(room); } //部屋の個数をカウント public int getRoomCount(){ return roomList.size(); } //n番目の部屋情報を取得 public Room getRoom(int n){ return roomList.get(n); } //部屋を作り、作成者を部屋に追加する public boolean createRoom(String name, String mode, String pass, String sId) { // AccountManagerを使うために宣言しておく ↓シングルトンパターンを利用しているため AccountManager accountmgr = AccountManager.getInstance(); Room room = new Room(); // //部屋のidを決める //部屋が削除されない場合 // int n = getRoomCount(); // System.out.println("room count : " + n); // int roomid = n+1; //部屋のidを決める //部屋が削除される場合 int roomid = id; id++; System.out.println("createrRoom sId" + sId); //作成者を部屋に追加し、roomidもacに記録する Account ac = new Account(); ac = accountmgr.getAccount(sId); if(ac == null){ //アカウントが見つからなかった場合にfalseを返す return false; } room.addMember(ac); //部屋を作る room.setName(name); room.setPass(pass); room.setId(roomid); roomList.add(room); return true; } //部屋のidで部屋を探す public Room searchIdRoom(int id){ Room room = new Room(); for(int i=0; i<getRoomCount(); i++) { room = getRoom(i); if(id == room.getId()) { return room; } } return null; } }