/** Return ServerInfo as Vector of VAttributeSets */ public ArrayList<AttributeSet> getInfoAttrSets() { // synchronize ! synchronized (this.serverInfos) { Set<String> keys = this.serverInfos.keySet(); ArrayList<AttributeSet> sets = new ArrayList<AttributeSet>(keys.size()); for (String key : keys) { ServerInfo info = serverInfos.get(key); sets.add(info.getAttributeSet()); } return sets; } }
/** Stored new ServerInfo and writes to file (if persistant) Returnes updated serverInfo */ public ServerInfo store(ServerInfo info) { logger.debugPrintf("store(): attrs=%s\n", info.getAttributeSet()); synchronized (this.serverInfos) { // === // Before adding new Info: check whether persistant database is // loaded ! // === checkIsLoaded(); // remove before put! remove(info); // synchronized put: UPDATES SERVERINFO KEY! put(info); // enters mutex again save(); // do NOT return reference to object into ServerRegistry return info.duplicate(); } }