package NET.worlds.network; import java.util.Enumeration; import java.util.Hashtable; class ObjectMgr { private Hashtable nFlongID = new Hashtable(); private Hashtable lFshortID = new Hashtable(); private Galaxy _galaxy; ObjectMgr(Galaxy galaxy) { this._galaxy = galaxy; } void regShortID(int shortID, String longID) { this.lFshortID.put(new Integer(shortID), longID); } void regObject(String longID, NetworkObject obj) { this.nFlongID.put(longID, obj); } void regObject(ObjID objID, NetworkObject obj) { String longID = this.getLongID(objID); this.nFlongID.put(longID, obj); } NetworkObject getObject(ObjID objID) { String longID = this.getLongID(objID); NetworkObject obj = this.nFlongID.get(longID); if (obj == null) { assert this._galaxy != null; obj = this._galaxy.getObject(longID); } return obj; } void delObject(ObjID objID) { String longID = this.getLongID(objID); NetworkObject obj = this.nFlongID.get(longID); assert obj != null; this.nFlongID.remove(longID); } Enumeration objects() { return this.nFlongID.elements(); } void clear() { this.nFlongID.clear(); this.nFlongID = new Hashtable(); this.lFshortID.clear(); this.lFshortID = new Hashtable(); } final String getLongID(ObjID objID) { String longID; if (objID.shortID() != 0) { longID = this.lFshortID.get(new Integer(objID.shortID())); } else { longID = objID.longID(); } return longID; } }