package NET.worlds.network; import java.util.Enumeration; import java.util.Vector; public class NetworkMulti implements NetworkObject { String _longID; Vector _list; Galaxy _galaxy; public NetworkMulti(String longID, Galaxy g) { this._longID = longID; this._list = new Vector(); this._galaxy = g; this.register(); } public NetworkMulti(String longID, NetworkMulti oldObj, Galaxy g) { this._longID = longID; this._list = oldObj.getList(); this._galaxy = g; this.register(); } Vector getList() { return this._list; } @Override public String getLongID() { return this._longID; } @Override public WorldServer getServer() { assert false; return null; } public Enumeration elements() { return this._list.elements(); } void addObject(NetworkObject obj) { this._list.addElement(obj); } void delObject(NetworkObject obj) { boolean exists = this._list.removeElement(obj); if (!exists) { System.out.println("Error - network object doesn't exist."); System.out.println(" obj = " + obj); System.out.println(" longID = " + this._longID); System.out.println(" galaxy = " + this._galaxy); System.out.println(" size(list) = " + this._list.size()); } assert exists; } @Override public void property(OldPropertyList propList) { for (int i = this._list.size() - 1; i >= 0; i--) { NetworkObject obj = this._list.elementAt(i); obj.property(propList); } } @Override public void propertyUpdate(PropertyList propList) { for (int i = this._list.size() - 1; i >= 0; i--) { NetworkObject obj = this._list.elementAt(i); obj.propertyUpdate(propList); } } @Override public void register() { this._galaxy.regObject(this._longID, this); } @Override public void galaxyDisconnected() { for (int i = this._list.size() - 1; i >= 0; i--) { NetworkObject obj = this._list.elementAt(i); obj.galaxyDisconnected(); } } @Override public void reacquireServer(WorldServer oldServ) { for (int i = this._list.size() - 1; i >= 0; i--) { NetworkObject obj = this._list.elementAt(i); obj.reacquireServer(oldServ); } } @Override public void changeChannel(Galaxy g, String oldChannel, String newChannel) { for (int i = this._list.size() - 1; i >= 0; i--) { NetworkObject obj = this._list.elementAt(i); obj.changeChannel(g, oldChannel, newChannel); } } }