public class AbstractFilingCabinet extends Object implements FilingCabinet
getPersonalData(),
która korzysta ze statycznej metody createPersonalData(AbstractFilingCabinet, Map, NameSetFactory)
podczas tworzenia danych osobowych.
Mapa szafy wiąże nazwisko z mapą, która wiąże imię z aktówką. Dzięki temu za pomocą nazwiska można uzyskać dostęp do wszystkich imion i aktówek do nich przypisanych. Bez tych dwóch informacji nie jest możliwe dostanie się do aktówki.
| Modifier and Type | Class and Description |
|---|---|
static interface |
AbstractFilingCabinet.MapFactory
Interfejs umożliwia stworzenie mapy wiążącej imię z konkretną aktówką.
|
static interface |
AbstractFilingCabinet.NameSetFactory
Interfejs umożliwia stworzenie zbioru imion dla konkretnego nazwiska.
|
| Constructor and Description |
|---|
AbstractFilingCabinet(Map<String,Map<String,Briefcase>> map,
AbstractFilingCabinet.MapFactory mapFactory)
Tworzy nowy obiekt ustawiając odpowiednią implementację mapy oraz interfejs wykorzystywany podczas
dodawania nowych wartości do mapy.
|
AbstractFilingCabinet(Map<String,Map<String,Briefcase>> map,
AbstractFilingCabinet.MapFactory mapFactory,
Map<String,Set<String>> personalData,
AbstractFilingCabinet.NameSetFactory nameSetFactory)
Tworzy nowy obiekt ustawiając odpowiednią implementację mapy oraz interfejs wykorzystywany podczas
dodawania nowych wartości do mapy.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(String surname,
String name,
Briefcase b)
Dodaje (albo zastępuje) do szafy aktówkę pod określone nazwisko i imię osoby.
|
void |
clear()
Usuwa wszystkie dane, które zawiera szafa.
|
Map<String,Briefcase> |
get(String surname)
Pobiera wszystkie aktówki, które są umieszczone pod podanym nazwiskiem.
|
Briefcase |
get(String surname,
String name) |
Map<String,Set<String>> |
getPersonalData() |
void |
remove(String surname,
String name)
Usuwa dane dot. osoby.
|
public AbstractFilingCabinet(Map<String,Map<String,Briefcase>> map, AbstractFilingCabinet.MapFactory mapFactory, Map<String,Set<String>> personalData, AbstractFilingCabinet.NameSetFactory nameSetFactory)
personalData zostanie ustalony na wartość inną niż null,
wtedy można zmienić domyślną implementację mapy nazwisk. Jeżeli natomiast ta mapa zawiera już jakieś
dane, tzn. nie jest pusta, wtedy dostęp do informacji jest uzależniony od tych danych. Jeżeli
klient będzie chciał odwołać się do nazwiska albo imienia, którego nie ma w mapie personalData,
wtedy zostanie wypluty wyjątek bezpieczeństwa. Jeżeli jest mapa jest pusta,
wtedy każde wywołanie metody getPersonalData() będzie generowało nową przestrzeń nazwisk
i imion w zależności od już dodanych danych do szafy.map - mapa wiążąca nazwisko z mapą, która z kolei wiąże imię z aktówkąmapFactory - metoda wytwórcza dla map wiążących imię z aktówkąpersonalData - przestrzeń nazwisk i imion, może być pusta lub nullnameSetFactory - jeżeli personalData == null || personalData.isEmpty(),
wtedy parametr ten ma znaczenie, ponieważ udostępnia możliwość tworzenia
zbiorów imion dla każdego nazwiska, korzystając z dowolnej implementacjipublic AbstractFilingCabinet(Map<String,Map<String,Briefcase>> map, AbstractFilingCabinet.MapFactory mapFactory)
map - mapa wiążąca nazwisko z mapą, która z kolei wiąże imię z aktówkąmapFactory - metoda wytwórcza dla map wiążących imię z aktówkąpublic void add(String surname, String name, Briefcase b)
FilingCabinetadd in interface FilingCabinetsurname - nazwiskoname - imię (imiona)b - aktówkapublic void remove(String surname, String name)
FilingCabinetremove in interface FilingCabinetsurname - nazwiskoname - imię (imiona)public void clear()
FilingCabinetclear in interface FilingCabinetpublic Map<String,Briefcase> get(String surname)
FilingCabinetget in interface FilingCabinetsurname - nazwiskopublic Briefcase get(String surname, String name)
get in interface FilingCabinetsurname - nazwiskoname - imiępublic Map<String,Set<String>> getPersonalData()
getPersonalData in interface FilingCabinetCopyright © 2021. All rights reserved.