From 71eac38c1277bf9cb15ba01df6dae20b131d9757 Mon Sep 17 00:00:00 2001
From: FloriN <lisa.nicomisch@tutamail.com>
Date: Wed, 4 Dec 2019 15:28:49 +0100
Subject: [PATCH] Doku & Code Conventionen Fehler, Funkraum, Steckbrett, Main

---
 src/main/java/projekt/enigma/Main.java        | 12 ++--
 .../java/projekt/enigma/model/Fehler.java     | 52 +++++++++++------
 .../java/projekt/enigma/model/Funkraum.java   |  5 +-
 .../java/projekt/enigma/model/Steckbrett.java | 58 ++++++++-----------
 .../projekt/enigma/model/HardwareTest.java    |  2 +-
 5 files changed, 72 insertions(+), 57 deletions(-)

diff --git a/src/main/java/projekt/enigma/Main.java b/src/main/java/projekt/enigma/Main.java
index b5abaf5..e392797 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 2617b70..624e5e2 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 3310b32..77131a5 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 426424b..aae70e4 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 d0be7f0..56bbe35 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"
-- 
GitLab