View Javadoc

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  }