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 }