1 /******************************************************************************** 2 * InternetCafe is a software solution that helps the management of Cybercafes 3 * according with the ITALIAN DECREE LAW ON ANTI-TERROR MEASURES, 27 JULY 2005. 4 * Copyright (C) 2006 Guido Angelo Ingenito 5 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 9 * of the License, or (at your option) any later version. 10 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 *******************************************************************************/ 20 21 package base.network; 22 23 import java.util.Observable; 24 25 public class NetworkManager extends Observable { 26 27 private static NetworkManager instance; 28 29 public static NetworkManager getInstance() { 30 return instance == null ? instance = new NetworkManager() : instance; 31 } 32 33 private Network network = new Network(); 34 35 /*** 36 * @return Returns the network. 37 */ 38 public Network getNetwork() { 39 return network; 40 } 41 42 /*** 43 * @param network 44 * The network to set. 45 */ 46 public void setNetwork(Network network) { 47 this.setChanged(); 48 this.network = network; 49 this.notifyObservers(network); 50 } 51 52 /*** 53 * This method simply builds a key string for an instance of Workstation. 54 * 55 * @param workstation 56 * The workstation from wich build the key. 57 * @return A key rappresentation for the workstation. 58 */ 59 protected static String workstationKey(Workstation workstation) { 60 String key = workstation.getId() + " " + workstation.getName() + " " 61 + workstation.getType() + " " + workstation.getAddress(); 62 return key; 63 } 64 65 /*** 66 * This method simply adds a client workstation to the network. 67 * 68 * @param workstation 69 * The client workstation to add to the network. 70 */ 71 public void addClientWorkstation(Workstation workstation) { 72 this.setChanged(); 73 this.network.addClient(workstation); 74 this.notifyObservers(workstation); 75 } 76 77 /*** 78 * This method deletes a client workstation from the network. 79 * 80 * @param workstation 81 * The workstation to delete. 82 */ 83 public void deleteWorkstation(Workstation workstation) { 84 this.setChanged(); 85 this.network.deleteClient(workstationKey(workstation)); 86 this.notifyObservers(workstation); 87 } 88 }