|
|
```plantuml
|
|
|
@startuml
|
|
|
|
|
|
title __MODEL's Class Diagram__\n
|
|
|
|
|
|
namespace projekt.enigma {
|
|
|
namespace model {
|
|
|
class projekt.enigma.model.Codebuch {
|
|
|
- ringstellung : int[]
|
|
|
- steckverbindung : char[][]
|
|
|
- tag : int
|
|
|
- walzenlage : int[]
|
|
|
+ Codebuch()
|
|
|
+ fetchTagesschluessel()
|
|
|
+ getRingstellung()
|
|
|
+ getSteckverbindung()
|
|
|
+ getTag()
|
|
|
+ getWalzenlage()
|
|
|
+ toString()
|
|
|
~ setTag()
|
|
|
- setRingstellung()
|
|
|
- setSteckverbindung()
|
|
|
- setWalzenlage()
|
|
|
}
|
|
|
|
|
|
class projekt.enigma.model.Codierer {
|
|
|
- kenngruppe : String
|
|
|
- nachricht : String
|
|
|
- spruchschluessel : String
|
|
|
- spruchschluesselCodiert : String
|
|
|
+ Codierer()
|
|
|
+ codiere()
|
|
|
+ codiere()
|
|
|
+ empfangeNachricht()
|
|
|
+ empfangenerSpruchschluessel()
|
|
|
+ fetchRingstellung()
|
|
|
+ fetchSteckverbindungen()
|
|
|
+ fetchWalzen()
|
|
|
+ fetchWalzenNr()
|
|
|
+ generateSpruchschluessel()
|
|
|
+ getKenngruppe()
|
|
|
+ getNachricht()
|
|
|
+ getSpruchschluessel()
|
|
|
+ letztesZeichenLoeschen()
|
|
|
+ pruefeSteckbrettPort()
|
|
|
+ resetHardware()
|
|
|
+ resetNachricht()
|
|
|
+ sendeNachricht()
|
|
|
+ setKenngruppe()
|
|
|
+ setzeRing()
|
|
|
+ setzeSteckbrett()
|
|
|
+ setzeWalze()
|
|
|
+ setzeWalzeNr()
|
|
|
- decodiere()
|
|
|
- decodiereString()
|
|
|
- generateKopf()
|
|
|
- initialisiereHardware()
|
|
|
- randomBuchstabe()
|
|
|
}
|
|
|
|
|
|
class projekt.enigma.model.Funkraum {
|
|
|
~ empfangeFunkspruch()
|
|
|
~ sendeFunkspruch()
|
|
|
}
|
|
|
|
|
|
class projekt.enigma.model.Hardware {
|
|
|
- walzen : Walze[]
|
|
|
+ Hardware()
|
|
|
+ codiere()
|
|
|
+ dreheWalzen()
|
|
|
+ getReflektor()
|
|
|
+ getSteckbrett()
|
|
|
+ getWalzen()
|
|
|
+ resetWalzen()
|
|
|
+ setReflektor()
|
|
|
+ setSteckbrett()
|
|
|
+ setWalzen()
|
|
|
+ setzePosition()
|
|
|
+ setzeRing()
|
|
|
+ setzeWalzenNr()
|
|
|
}
|
|
|
|
|
|
class projekt.enigma.model.Morsecode {
|
|
|
- codeMap : TreeMap<String, String>
|
|
|
+ Morsecode()
|
|
|
+ convertBuchstabeToMorsecode()
|
|
|
+ convertMorsecodeToBuchstabe()
|
|
|
- getBuchstabe()
|
|
|
- getMorsecode()
|
|
|
}
|
|
|
|
|
|
class projekt.enigma.model.Reflektor {
|
|
|
+ codiere()
|
|
|
}
|
|
|
|
|
|
class projekt.enigma.model.Steckbrett {
|
|
|
- getauschteBuchstaben : String
|
|
|
- originalBuchstaben : String
|
|
|
+ Steckbrett()
|
|
|
+ codiere()
|
|
|
+ setzeVertauschung()
|
|
|
+ setzeVertauschung()
|
|
|
+ ueberpruefeVertauschungen()
|
|
|
}
|
|
|
|
|
|
class projekt.enigma.model.Walze {
|
|
|
- alphabet : String
|
|
|
- ringstellung : char
|
|
|
- turns : int
|
|
|
- walzen : String[]
|
|
|
- walzenNr : int
|
|
|
+ Walze()
|
|
|
+ codiere()
|
|
|
+ codiere2()
|
|
|
+ dreheWalze()
|
|
|
+ getPosition()
|
|
|
+ setPosition()
|
|
|
+ setRingstellung()
|
|
|
+ setWalzenNr()
|
|
|
- fetchWalze()
|
|
|
}
|
|
|
}
|
|
|
namespace database {
|
|
|
class projekt.enigma.database.DatenbankSqlite {
|
|
|
+ getCodebuch()
|
|
|
- connect()
|
|
|
}
|
|
|
}
|
|
|
class projekt.enigma.App {
|
|
|
{static} - scene : Scene
|
|
|
{static} + main()
|
|
|
+ start()
|
|
|
{static} ~ setRoot()
|
|
|
{static} - loadFXML()
|
|
|
}
|
|
|
class projekt.enigma.GuiController {
|
|
|
+ setzeTagesSchluessel()
|
|
|
~ empfangeFunkspruch()
|
|
|
~ initialize()
|
|
|
- gedrueckteTaste()
|
|
|
- leuchten()
|
|
|
- loeschen()
|
|
|
- menu()
|
|
|
- sendeFunkspruch()
|
|
|
- setMenuBtnText()
|
|
|
- setText()
|
|
|
- setzePosition()
|
|
|
- setzeRing()
|
|
|
- setzeSteckverbindungen()
|
|
|
- setzeWalze()
|
|
|
}
|
|
|
class projekt.enigma.KenngruppeController {
|
|
|
- switchToPrimary()
|
|
|
}
|
|
|
class projekt.enigma.Main {
|
|
|
{static} + main()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
projekt.enigma.Main <|-up- javafx.application.Application
|
|
|
projekt.enigma.App <|-up- projekt.enigma.Main
|
|
|
projekt.enigma.KenngruppeController <|-up- projekt.enigma.App
|
|
|
projekt.enigma.GuiController <|-up- projekt.enigma.KenngruppeController
|
|
|
projekt.enigma.model.Codierer o-- projekt.enigma.model.Codebuch : fetchTagesschluessel
|
|
|
projekt.enigma.database.DatenbankSqlite o-- projekt.enigma.model.Codebuch : getCodebuch
|
|
|
projekt.enigma.model.Codierer o-- projekt.enigma.model.Hardware : hardware
|
|
|
projekt.enigma.model.Codierer o-- projekt.enigma.model.Morsecode : mc
|
|
|
projekt.enigma.model.Morsecode o-- projekt.enigma.model.Funkraum : funkraum
|
|
|
projekt.enigma.model.Hardware o-- projekt.enigma.model.Reflektor : r
|
|
|
projekt.enigma.model.Hardware o-- projekt.enigma.model.Steckbrett : sb
|
|
|
projekt.enigma.model.Hardware o-- projekt.enigma.model.Walze : walzen
|
|
|
projekt.enigma.GuiController o-- projekt.enigma.model.Codierer : c
|
|
|
|
|
|
right footer
|
|
|
~ Methode
|
|
|
+ Public function
|
|
|
- Private function
|
|
|
endfooter
|
|
|
|
|
|
@enduml
|
|
|
``` |
|
|
\ No newline at end of file |