diff --git a/src/main/java/projekt/enigma/Main.java b/src/main/java/projekt/enigma/Main.java index b5abaf5e0ca620dbe5c06670a79b78aa1ee41db4..e392797f63815a8ddc0c01a6afcd70d1a0ddd5c8 100644 --- a/src/main/java/projekt/enigma/Main.java +++ b/src/main/java/projekt/enigma/Main.java @@ -1,13 +1,17 @@ package projekt.enigma; - -import projekt.enigma.threads.ThreadApp; -import projekt.enigma.threads.ThreadFunkraum; - import java.sql.SQLException; +/** + * Startpunkt des Programms. Startet die Klasse App und damit die GUI. + */ public class Main { + /** + * Startet die App + * + * @param args : String[] : Standard-Kommandozeilen-Parameter + */ public static void main(String[] args) throws SQLException { App.main(args); } diff --git a/src/main/java/projekt/enigma/model/Fehler.java b/src/main/java/projekt/enigma/model/Fehler.java index 2617b700baed9a77d9b3c5a249649dd20f7aaf05..624e5e267f73d10fb512fcd8799429489bb4e39e 100644 --- a/src/main/java/projekt/enigma/model/Fehler.java +++ b/src/main/java/projekt/enigma/model/Fehler.java @@ -9,69 +9,85 @@ import projekt.enigma.App; */ public class Fehler { - private String functionPrefix = "- "; - private String messagePrefix = "--> "; + private static final String FUNCTION_PREFIX = "- "; + private static final String MESSAGE_PREFIX = "--> "; /** * Zeige Fehler Dialog * * @param type : String : Art der Meldung (warning/information/error) - * @param subject : Titel des Dialoges - * @param message : Nachricht der Meldung + * @param subject : String : Titel des Dialoges + * @param message : String : Nachricht der Meldung */ public void showErrorDialog(String type, String subject, String message) { - - new Fehler().debug(this.getClass().getName() + "." + new Throwable().getStackTrace()[0].getMethodName(), true); - Alert alert; - /* Der Titel darf auch als leerer String übergeben werden, dann wird ein Default gesetzt */ + new Fehler().debug(this.getClass().getName() + "." + + new Throwable().getStackTrace()[0].getMethodName(), true); + + /* Der Titel darf auch als leerer String uebergeben werden, dann wird ein Default gesetzt */ if (subject.equals("")) { subject = "Es ist ein Fehler aufgetreten"; } - /* Welcher Fehler Typ wurde übergeben? */ + /* Welcher Fehler Typ wurde uebergeben? */ switch (type) { case "warning": alert = new Alert(AlertType.WARNING); break; + case "info": alert = new Alert(AlertType.INFORMATION); break; + case "error": alert = new Alert(AlertType.ERROR); break; + default: alert = new Alert(AlertType.NONE); } - /* Setzt den Titel des Dialoges */ + + //Anzeige des Alerts definieren alert.setTitle(subject); - /* Setzt den Headertext des Dialoges */ alert.setHeaderText(null); - /* Setzt die Nachricht des Dialoges */ alert.setContentText(message); - /* Zeige den Dialog an */ alert.showAndWait(); } + /** + * Unter zuhilfenahme dieser Funktion koennen Debug Meldungen auf der Konsole ausgegeben werden, + * wenn in der App.java der Getter getDebug einen int > 0 zurueck gibt. + * Ueber diesen Getter kann man steuern ob Meldungen in der Konsole angezeigt werden sollen oder nicht. + * + * @param message : String : Nachricht + * @param isFunction : boolean : Gibt an ob ein Funktionsname übergeben wird oder eine Debug Meldung + */ public void debug(String message, boolean isFunction) { - if (App.getDebug() != 0) { if (isFunction) { - System.out.println(functionPrefix + message); + System.out.println(FUNCTION_PREFIX + message); } else { - System.out.println(messagePrefix + message); + System.out.println(MESSAGE_PREFIX + message); } } } + /** + * Umter zuhilfenahme dieser Funktion koennen Debug Meldungen auf der Konsole ausgegeben werden, + * wenn in der App.java der Getter getDebug einen int > 0 zurueck gibt. + * Ueber diesen Getter kann man steuern ob Meldungen in der Konsole angezeigt werden sollen oder nicht. + * + * @param message : String : Nachricht + * @param isFunction : boolean : Gibt an ob ein Funktionsname übergeben wird oder eine Debug Meldung + */ public void debug(String message, boolean isFunction, int debugLevel) { if (App.getDebug() != 0 && (App.getDebug() >= debugLevel || App.getDebug() == 3)) { if (isFunction) { - System.out.println(functionPrefix + message); + System.out.println(FUNCTION_PREFIX + message); } else { - System.out.println(messagePrefix + message); + System.out.println(MESSAGE_PREFIX + message); } } } diff --git a/src/main/java/projekt/enigma/model/Funkraum.java b/src/main/java/projekt/enigma/model/Funkraum.java index 3310b32c5a145e4adadcb6fa73314b1d7f6731f6..77131a58b194b31ed6bf6012822786dc033f07fd 100644 --- a/src/main/java/projekt/enigma/model/Funkraum.java +++ b/src/main/java/projekt/enigma/model/Funkraum.java @@ -23,7 +23,7 @@ import java.util.List; * Der Funkraum kann Funksprueche empfangen und senden. * Hierfuer wird eine Verbindung zu einem externen Service aufgebaut. * Dieser Servive erwartet die Nachrichten im JSON Format. Dazu wird ein k als Kenngruppe - * (Benutzername) uebergeben und falls eine Nachricht gesendet werden soll, zusätzlich ein m mit der Nachricht. + * (Benutzername) uebergeben und falls eine Nachricht gesendet werden soll, zusaetzlich ein m mit der Nachricht. * Beides wird als String gesendet. */ public class Funkraum { @@ -36,6 +36,9 @@ public class Funkraum { * @param kenngruppe : String : Kenngruppe dieser Enigma * @return funkspruch : String[] : String Array wobei Index 0 dem Empfangstag entspricht und Index 1 * der empfangenen Nachricht + * @throws UnsupportedEncodingException : Exception : falsche Zeichenkodierung + * @throws IOException : Exception : Fehler bei der uebergabe an den Webservice + * @throws NullPointerException : Exception : Keine Nachricht */ public String[] empfangeFunkspruch(String kenngruppe) { String[] funkspruch = new String[2]; diff --git a/src/main/java/projekt/enigma/model/Steckbrett.java b/src/main/java/projekt/enigma/model/Steckbrett.java index 426424bac13c717a37c9b7529a39d71436ea033e..aae70e4ffde4f36ac4927ccdea78e05904a31832 100644 --- a/src/main/java/projekt/enigma/model/Steckbrett.java +++ b/src/main/java/projekt/enigma/model/Steckbrett.java @@ -12,12 +12,12 @@ package projekt.enigma.model; public class Steckbrett { /** - * orginalBuchstaben: Character-Array, der jeweils den ersten zu vertauschenden Buchstaben enthält + * orginalBuchstaben: String : der jeweils den ersten zu vertauschenden Buchstaben enthaelt */ private String originalBuchstaben; /** - * getauschteBuchstaben: Character-Array, der jeweils den zweiten zu vertauschenden Buchstaben enthält + * getauschteBuchstaben: String : der jeweils den zweiten zu vertauschenden Buchstaben enthaelt */ private String getauschteBuchstaben; @@ -25,10 +25,9 @@ public class Steckbrett { /** * Konstruktor Steckbrett * <br> - * Erzeugt zwei Charakter-Arrays (orginalBuchstaben und getauschteBuchstaben) der Länge 10. + * Erzeugt zwei Strings und initialisiert diese mit einer leeren Menge. */ public Steckbrett() { - originalBuchstaben = ""; getauschteBuchstaben = ""; } @@ -36,25 +35,24 @@ public class Steckbrett { /** * Funktion setzeVertauschung * <br> - * Der Funktion setzeVertauschung werden 2 Buchstaben (buchstabe1 und buchstabe2) übergeben. - * Zuerst wird überprüft ob einer der beiden Buchstaben bereits enthalten ist, was unzulässig wäre. + * Der Funktion setzeVertauschung werden 2 Buchstaben (buchstabe1 und buchstabe2) uebergeben. + * Zuerst wird ueberprueft ob einer der beiden Buchstaben bereits enthalten ist, was unzulaessig waere. * <br> * Anschließend wird: * <p> - * buchstabe1 in das Array orginalBuchstaben auf den nächsten, freien Index geschrieben - * buchstabe2 in das Array getauschteBuchstaben auf den nächsten, freien Index geschrieben. + * buchstabe1 dem String orginalBuchstaben angehaengt. + * buchstabe2 dem String getauschteBuchstaben angehaengt. * </p> * - * @param buchstabe1 : char: Gibt den ersten Buchstaben an, der getauscht werden soll. - * @param buchstabe2 : char: gibt den zweiten Buchstaben an, mit dem der erste getauscht werden soll. - * @return boolean : Wenn die Vertauschung zulässig ist, true, ansonsten false + * @param buchstabe1 : char : Gibt den ersten Buchstaben an, der getauscht werden soll. + * @param buchstabe2 : char : gibt den zweiten Buchstaben an, mit dem der erste getauscht werden soll. + * @return boolean : Wenn die Vertauschung zulaessig ist, true, ansonsten false */ public boolean setzeVertauschung(char buchstabe1, char buchstabe2) { - - if (!ueberpruefeVertauschungen(buchstabe1) && !ueberpruefeVertauschungen(buchstabe2) && originalBuchstaben.length() <= 20) { + if ((!ueberpruefeVertauschungen(buchstabe1)) && (!ueberpruefeVertauschungen(buchstabe2)) + && (originalBuchstaben.length() <= 20)) { originalBuchstaben += buchstabe1; getauschteBuchstaben += buchstabe2; - return true; } else { return false; @@ -62,15 +60,15 @@ public class Steckbrett { } /** - * Funktion setzeVertauschung mit angabe eines Ports von 1 - 10 + * Funktion setzeVertauschung mit Angabe eines Ports von 1 - 10 * <br> - * Der Funktion setzeVertauschung werden 2 Buchstaben (buchstabe1 und buchstabe2) sowie der Port übergeben. - * Zuerst wird überprüft ob einer der beiden Buchstaben bereits enthalten ist, was unzulässig wäre. + * Der Funktion setzeVertauschung werden 2 Buchstaben (buchstabe1 und buchstabe2) sowie der Port uebergeben. + * Zuerst wird ueberprueft ob einer der beiden Buchstaben bereits enthalten ist, was unzulaessig waere. * <br> * Anschließend wird: * <p> - * buchstabe1 in das Array orginalBuchstaben auf den Index (steckbrettPort) geschrieben - * buchstabe2 in das Array getauschteBuchstaben auf den Index (steckbrettPort) geschrieben. + * buchstabe1 in den String orginalBuchstaben auf die Position (steckbrettPorts) geschrieben + * buchstabe2 in den String getauschteBuchstaben auf die Position (steckbrettPort) geschrieben. * </p> * * @param buchstabe1 : char: Gibt den ersten Buchstaben an, der getauscht werden soll. @@ -78,31 +76,27 @@ public class Steckbrett { * @return boolean : Wenn die Vertauschung zulässig ist, true, ansonsten false */ public boolean setzeVertauschung(int steckbrettPort, char buchstabe1, char buchstabe2) { - if (!ueberpruefeVertauschungen(buchstabe1) && !ueberpruefeVertauschungen(buchstabe2)) { originalBuchstaben.replace(originalBuchstaben.charAt(steckbrettPort), buchstabe1); getauschteBuchstaben.replace(getauschteBuchstaben.charAt(steckbrettPort), buchstabe2); - return true; } else { return false; } - } /** * Funktion ueberpruefeVertauschungen * <br> - * Die Funktion ueberpruefeVertauschungen prueft ob der übergebene Buchstabe bereits in den beiden Arrays - * (orginalBuchstaben) und (getauschteBuchstaben) vorhanden ist. + * Die Funktion ueberpruefeVertauschungen prueft ob der uebergebene Buchstabe bereits in den beiden Strings + * orginalBuchstaben und getauschteBuchstaben vorhanden ist. * Eine Buchstabenvertauschung ist zulaessig, wenn keine Dopplungen der zu vertauschenden Buchstaben auftritt * (ein Buchstabe nicht mehrmals vertauscht wird). * - * @return boolean : Wenn false, dann darf der Buchstabe genutzt werden. - * Wenn er schon vorhanden ist, wird true zurück gegeben + * @return result : boolean : Wenn false, dann darf der Buchstabe genutzt werden. Wenn er schon vorhanden ist, + * wird true zurueck gegeben */ public boolean ueberpruefeVertauschungen(Character buchstabe) { - boolean result = false; if (originalBuchstaben.contains(String.valueOf(buchstabe)) || @@ -122,7 +116,6 @@ public class Steckbrett { * @return buchstabe : Character : Codierter Buchstabe. */ public char codiere(Character buchstabe) { - if (originalBuchstaben.contains(String.valueOf(buchstabe))) { return getauschteBuchstaben.charAt(originalBuchstaben.indexOf(buchstabe)); } else if(getauschteBuchstaben.contains(String.valueOf(buchstabe))) { @@ -133,12 +126,12 @@ public class Steckbrett { } /** - * TODO: Doku - * @param port - * @return + * Tauscht die Buchstaben im Alphabet aus und gibt ein modifiziertes Alphabet zurueck + * + * @param port : int : Platz der getauschten Buchstaben + * @return alphabet : String : Alphabet mit getauschen Buchstabenpaaren */ public String fetchVerfuegbareBuchstaben(int port) { - String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (char c : this.originalBuchstaben.toCharArray()) { @@ -154,5 +147,4 @@ public class Steckbrett { return alphabet; } - } \ No newline at end of file diff --git a/src/test/java/projekt/enigma/model/HardwareTest.java b/src/test/java/projekt/enigma/model/HardwareTest.java index d0be7f035f829af0eb6defdb7356440510017587..56bbe353209a35802ab081680352de215f5a28c3 100644 --- a/src/test/java/projekt/enigma/model/HardwareTest.java +++ b/src/test/java/projekt/enigma/model/HardwareTest.java @@ -21,7 +21,7 @@ public class HardwareTest { Steckbrett "W S L V H Y G I X A" Steckbrett "J E F B K P M Q U C" - Walze 3 "E K M F L G D Q V Z N T O W Y H X U S P A I B R C J" + Walze 3 "E K M F L G D Q V Z N T O W Y H X U S P A I B R C J" Walze 2 "V Z B R G I T Y U P S D N H L X A W M J Q O F E C K" Walze 1 "A J D K S I R U X B L H W T M C Q G Z N P Y F V O E" Reflektor "E J M Z A L Y X V B W F C R Q U O N T S P I K H G D"