package net.sourceforge.pain.tinylib.data; import net.sourceforge.pain.db.*; import net.sourceforge.pain.tinylib.data.type.*; import java.util.*; /** * PAiN Date: 14.06.2003 Time: 0:58:00 */ public final class RoomsRegistry extends DbObject { private static final int ROOM_BY_ID = 0; private static final int NFIELDS = 1; public RoomsRegistry() { } public RoomsRegistry(PainDB db) { super(db); } protected DbClassSchema provideSchema() { byte types[] = new byte[NFIELDS]; String names[] = new String[NFIELDS]; types[ROOM_BY_ID] = DbType.STRING_KEY_MAP; names[ROOM_BY_ID] = "named_space_map"; return new DbClassSchema(types, names); } public Room findRoom(String roomUniqueId) { return (Room) getStringKeyMap(ROOM_BY_ID).get(roomUniqueId); } public void registerRoom(Room room) { final Map m = getStringKeyMap(ROOM_BY_ID); final String id = room.getRoomUniqueId(); if (m.containsKey(id)) { throw new RuntimeException("Dublicate room id:" + id); } m.put(id, room); } public void unregisterSpace(Room room) { final Map m = getStringKeyMap(ROOM_BY_ID); final String name = room.getRoomUniqueId(); m.remove(name); } }