È possibile registrare un nuovo account tramite il metodo addPerson()
che accetta come parametri un codice univoco, nome e cognome.
Il metodo lancia un'eccezione di PersonExistsException se il codice univoco
è già associato ad un account.
Il metodo getPerson() restituice una stringa contenente codice,
nome e cognome della persona, separati da spazi. Se il codice passato
come parametro non corrisponde a nessun account, il metodo lancia
un'eccezione di NoSuchCodeException.
L'amicizia viene stabilita con il metodo addFriendship() che accetta come parametri il codice di entrambe le persone. Il metodo lancia un'eccezione di NoSuchCodeException se almeno uno dei due codici non esiste.
Il metodo listOfFriends() riceve come parametro il codice
di una persona e restituisce la collezione dei suoi amici.
Viene lanciata una NoSuchCodeException se il codice non esiste.
Se la persona non ha amici viene restituita una collezione vuota.
Il metodo friendsOfFriends riceve come parametro il codice di una
persona e restituisce la collezione degli amici dei propri amici, ovvero
gli amici di secondo livello.
Viene lanciata una NoSuchCodeException se il codice non esiste.
Se la persona non ha amici di amici viene restituita una collezione vuota.
La collezione non deve contenere la persona il cui codice è stato passato
al metodo. ("rimuovi te stesso dall lista")
Il metodo friendsOfFriendsNoRepitition() restituisce la lista dei codici
degli amici di secondo livello, come il metodo precedente, ma senza duplicati.
Per esempio se A ha come amici B e C ed entrambi hanno come
amico D, il metodo deve restituire D solo una volta.
Viene lanciata una NoSuchCodeException se il codice non esiste.
Il metodo listOfGroups() restituisce la lista dei nomi di tutti i gruppi registrati o la collezione vuota se non ce ne sono.
Una persona può essere iscritta ad un gruppo tramite il metodo
addPersonToGroup() che riceve come parametri il codice della persona
ed il nome del gruppo.
Quindi il metodo listOfPeopleInGroup() restituisce la collezione
dei codici delle persone iscritte al gruppo dato.
Il metodo personWithMostFriendsOfFriends() restituisce il codice della persona con il maggior numero di amici di amici (secondo livello). Si supponga che non esistano casi di parità.
Il metodo largestGroup() resituisce il nome del gruppo con il maggior numero di membri. Si supponga che non esistano casi di parità.
Il layout deve essere simili a quello mostrato a lato.
setLayout(new BorderLayout()); JPanel upper = new JPanel(); upper.setLayout(new FlowLayout()); upper.add( ... ); add(upper,BorderLayout.NORTH);
Se il codice non è valido deve essere mostrato il messaggio di errore a fianco.
Dopo un login riuscito, il sistema deve mostrare la lista degli amici nella lista corrispondente.
Inoltre deve essere possibile fare il login semplicemente premento il tasto enter sulla tastiera dopo ave scritto il codice.