PatenteELibbrettoPregoh/uml.puml
2025-05-01 12:51:09 +02:00

149 lines
4.6 KiB
Text

@startuml
class Comune {
- nome: String
- codice: String
+ getNome(): String
+ getCodice(): String
}
class Comuni {
- comuni: ArrayList<Comune>
+ addComune(Comune): void
+ removeComune(Comune): void
+ getComuni(): ArrayList<Comune>
+ getCodiceComune(String): String
}
enum Formato {
JSON
XML
}
enum StatoGioco {
IN_CORSO
GIUSTIZIATO
RIVOLUZIONE
DODICESIMO_GIORNO
NON_ABBASTANZA_SOLDI
ARRESTATO
}
class PatenteELibbrettoPregohMain {
+main(String[]): void
-gameLoop(GameData): void
-gestisciPersona(GameData, ArrayList<PersonaControllata>): void
-datiSbagliatiRifiutati(Persona, GameData, ArrayList<PersonaControllata>): void
-personaRifiutata(Persona, ArrayList<PersonaControllata>): void
-gestisciMazzetta(Persona, GameData, ArrayList<PersonaControllata>): void
-mazzettaRifiutata(Persona, ArrayList<PersonaControllata>): void
-mazzettaPoliziotto(Persona, GameData, ArrayList<PersonaControllata>): void
-mazzettaRivoluzionario(Persona, GameData, ArrayList<PersonaControllata>): void
-datiCorrettiRifiutati(Persona, ArrayList<PersonaControllata>, GameData): void
-datiSbagliatiAccettati(Persona, ArrayList<PersonaControllata>, GameData): void
-datiCorrettiAccettati(Persona, ArrayList<PersonaControllata>): void
-endGame(GameData): void
-controllaPersona(Persona, Comuni, GameData): boolean
-getFormato(): Formato
}
class Persona {
-nome: String
-cognome: String
-sesso: String
-dataNascita: String
-comuneNascita: String
-codiceFiscale: String
-scadenzaDocumento: String
+getNome(): String
+getCognome(): String
+getSesso(): String
+getDataNascita(): String
+getComuneNascita(): String
+getCodiceFiscale(): String
+getScadenzaDocumento(): String
+isCodiceFiscaleValido(Comuni): boolean
+calcolaCodiceFiscale(Comuni): String
}
class GameData {
- formato: Formato
- nomePersonaggio: String
- diario: ArrayList<PaginaDiario>
- comuni: Comuni
- persone: ArrayList<Persona>
- saldo: double
- numeroMazzetteAccettatePolizia: int
- numeroRivoluzionariAccettati: int
- statoGioco: StatoGioco
- giorno: int
- data: LocalDate
+ getDiario(): ArrayList<PaginaDiario>
+ getComuni(): Comuni
+ getPersone(): ArrayList<Persona>
+ getSaldo(): double
+ getPersonaDaControlare(): Persona
+ getNumeroMazzetteAccettatePolizia(): int
+ getNumeroRivoluzionariAccettati(): int
+ addPaginaDiario(PaginaDiario): void
+ addSaldo(double): void
+ pagaMulta(double): void
+ incrementaMazzetteAccettatePolizia(): void
+ incrementaRivoluzionariAccettati(): void
+ getNomePersonaggio(): String
+ getStatoGioco(): StatoGioco
+ getGiorno(): int
+ incrementaGiorno(ArrayList<PersonaControllata>): void
+ getData(): LocalDate
+ saveDiario(): void
}
class PaginaDiario {
- data: String
- bilancio: double
- personeControllate: ArrayList<PersonaControllata>
+ getGiorno(): int
+ getData(): String
+ getBilancio(): double
+ getPersoneControllate(): ArrayList<PersonaControllata>
+ addPersonaControllata(PersonaControllata): void
+ removePersonaControllata(PersonaControllata): void
}
class Parser {
+ parsePersone(Formato, String): ArrayList<Persona>
+ parseComuni(Formato, String): Comuni
+ saveDiario(String, ArrayList<PaginaDiario>, Formato): void
}
class PersonaControllata {
- esitoControllo: boolean <<@SerializedName("approvato")>>
- tipoPersonaControllata: TipoPersonaControllata <<transient>>
--
+ PersonaControllata(persona: Persona, esitoControllo: boolean, tipoPersonaControllata: TipoPersonaControllata)
+ isEsitoControllo(): boolean
+ getTipoPersonaControllata(): TipoPersonaControllata
+ getStatoTransito(): String
+ toString(): String
}
PersonaControllata --|> Persona
PatenteELibbrettoPregohMain --> GameData
PatenteELibbrettoPregohMain --> PersonaControllata
PatenteELibbrettoPregohMain --> Persona
PatenteELibbrettoPregohMain --> Formato
PatenteELibbrettoPregohMain --> StatoGioco
PatenteELibbrettoPregohMain --> Comuni
PatenteELibbrettoPregohMain --> Parser
Persona --> Comuni
Comune <-- Comuni
GameData --> Comuni
GameData --> "0..*" Persona
GameData --> "0..*" PaginaDiario
GameData --> Formato
GameData --> StatoGioco
GameData --> "0..*" PersonaControllata
}
@enduml