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 }