View Javadoc

1   package twcsckernel.serverKernel.utils;
2   
3   import java.io.IOException;
4   import java.util.Collections;
5   import java.util.Map;
6   import java.util.Set;
7   
8   import twcsckernel.serverKernel.io.TypeIO;
9   
10  /***
11   * Kontener zarejestrowanych typów użytkowników wraz z zarządzaniem.
12   * 
13   * @author VMD Group
14   * 
15   */
16  public class RegisteredTypes {
17  	private Map<String, TypeData> types = null;
18  
19  	TypeIO typeIO;
20  
21  	/***
22  	 * Konstruktor ustawia podany manager I/O i odczytuje wszystkie typy.
23  	 * 
24  	 * @param typeIO -
25  	 *            obiekt zarządzający operacjami I/O na typach
26  	 * @throws IOException -
27  	 *             błąd odczytu
28  	 */
29  	public RegisteredTypes(TypeIO typeIO) throws IOException {
30  		this.typeIO = typeIO;
31  		types = Collections.synchronizedMap(typeIO.readTypes());
32  	}
33  
34  	/***
35  	 * Metoda dodaje typ użytkownika do zbioru danych zarządzanego przez podany
36  	 * w konstruktorze obiekt I/O
37  	 * 
38  	 * @param data -
39  	 *            dane typu do dodania
40  	 * @return - <code>true</code> jeśli operacja się powiodła (nie było
41  	 *         wcześniej typu o podanej nazwie) lub <code>false</code> w
42  	 *         przeciwnym wypadku
43  	 * @throws IOException -
44  	 *             błąd zapisu
45  	 */
46  	public boolean addNewType(TypeData data) throws IOException {
47  		if (!types.containsKey(data.getTypeName()))
48  			return typeIO.addNewType(data);
49  		return false;
50  	}
51  
52  	/***
53  	 * Metoda usuwa typ użytkownika ze zbioru danych zarządzanego przez podany w
54  	 * konstruktorze obiekt I/O
55  	 * 
56  	 * @param name -
57  	 *            nazwa typu do usunięcia
58  	 * @return - <code>true</code> jeśli operacja się powiodła lub
59  	 *         <code>false</code> w przeciwnym wypadku
60  	 * @throws IOException -
61  	 *             błąd zapisu
62  	 */
63  	public boolean removeType(String name) throws IOException {
64  		return typeIO.removeType(name, types);
65  	}
66  
67  	/***
68  	 * @return - tablica wszystkich typów
69  	 */
70  	public TypeData[] getRegisteredTypes() {
71  		return types.values().toArray(new TypeData[0]);
72  	}
73  
74  	/***
75  	 * @return - zbiór wszystkich nazw typów
76  	 */
77  	public Set<String> getTypeNamesSet() {
78  		return types.keySet();
79  	}
80  
81  }