Skip to content
Snippets Groups Projects
Commit 21530ebc authored by Michael's avatar Michael
Browse files

Kommentare hinzugefuegt

(Datenbank, Codebuch, Codierer[alt])
parent 78f81225
No related branches found
No related tags found
1 merge request!134Master
...@@ -3,25 +3,24 @@ package projekt.enigma.database; ...@@ -3,25 +3,24 @@ package projekt.enigma.database;
import java.sql.*; import java.sql.*;
/** /**
* Dies ist die SQLite Datenbank Klasse * Dies ist die SQLite Datenbank Klasse.
* In der SQLite Datei im Resources Ordner liegt das Codebuch welches benötigt wird um die * In der SQLite Datei im Resources Ordner liegt das Codebuch welches benoetigt wird um die
* Nachrichten mit der Enigma zu ver/entschlüsseln. * Nachrichten mit der Enigma zu ver/entschluesseln.
* Die Datenbank ist statisch und deshalb konnte sie im Resources Ordner hinterlegt werden. * Die Datenbank ist statisch und deshalb konnte sie im Resources Ordner hinterlegt werden.
* Für jeden Tag des Monats (1-31) ist ein eigener Eintrag enthalten welcher über die Funktion * Für jeden Tag des Monats (1-31) ist ein eigener Eintrag enthalten welcher ueber die Funktion
* getCodebuch abgerufen werden kann. * getCodebuch abgerufen werden kann.
* Zurückgegeben wird ein Array welcher in der getCodebuch Funktion genauer dokumentiert ist. * Zurueckgegeben wird ein Array welcher in der getCodebuch Funktion genauer dokumentiert ist.
*/ */
public class DatenbankSqlite { public class DatenbankSqlite {
/** /**
* Verbindung zur SQLite Datenbank aufbauen. * Verbindung zur SQLite Datenbank aufbauen.
* Die Datei liegt in den Resources und ändert sich nicht, * Die Datei liegt in den Resources und aendert sich nicht,
* weshalb der Pfad zu derselben fest hinterlegt ist. * weshalb der Pfad zu derselben fest hinterlegt ist.
* *
* @return conn : Connection * @return conn : Connection: statische Datenbankverbindung.
*/ */
private Connection connect() { private Connection connect() {
String url = "jdbc:sqlite::resource:projekt/enigma/codebuch.sqlite"; String url = "jdbc:sqlite::resource:projekt/enigma/codebuch.sqlite";
Connection conn = null; Connection conn = null;
...@@ -35,15 +34,15 @@ public class DatenbankSqlite { ...@@ -35,15 +34,15 @@ public class DatenbankSqlite {
} }
/** /**
* Liest das Codebuch aus der SQLite Datenbank aus * Liest das Codebuch aus der SQLite Datenbank aus.
* Dieser Funktion muss ein tag als int Wert übergeben werden. * Dieser Funktion muss ein tag als int Wert uebergeben werden.
* Anschließend wir eine Verbindung zur SQLite Datenbank aufgebaut und das Codebuch angefragt. * Anschließend wird eine Verbindung zur SQLite Datenbank aufgebaut und das Codebuch angefragt.
* Dieses wird in ein Object vom Type Codebuch gepackt und zurück gegeben. * Dieses wird in ein Objekt vom Typ Codebuch gepackt und zurueckgegeben.
* *
* Hole den heutigen Eintrag aus der SQLite Datenbank und erstelle daraus ein Codebuch Objekt * Holt den heutigen Eintrag aus der SQLite Datenbank und erstellt daraus ein Codebuch Objekt.
* *
* @param tag : int : Tag für welchen ein Codebuch benötigt wird. * @param tag : int : Tag fuer welchen ein Codebuch benoetigt wird.
* @return String : Die Einstellungen des angefragten Tages * @return String : Die Einstellungen des angefragten Tages.
* <p> * <p>
* String[0] : Tag * String[0] : Tag
* String[1] : Walzenlage * String[1] : Walzenlage
...@@ -52,12 +51,11 @@ public class DatenbankSqlite { ...@@ -52,12 +51,11 @@ public class DatenbankSqlite {
* </p> * </p>
*/ */
public String[] getCodebuch(int tag) { public String[] getCodebuch(int tag) {
String[] codebuch = new String[4]; String[] codebuch = new String[4];
try { try {
Connection conn = this.connect(); Connection conn = this.connect();
PreparedStatement pstm = conn.prepareStatement("SELECT * FROM table_codebuch WHERE Tag=? LIMIT 1"); PreparedStatement pstm = conn.prepareStatement("SELECT * FROM table_codebuch WHERE Tag = ? LIMIT 1");
pstm.setInt(1, tag); pstm.setInt(1, tag);
ResultSet rs = pstm.executeQuery(); ResultSet rs = pstm.executeQuery();
...@@ -67,8 +65,7 @@ public class DatenbankSqlite { ...@@ -67,8 +65,7 @@ public class DatenbankSqlite {
codebuch[2] = rs.getString("Ringstellung"); codebuch[2] = rs.getString("Ringstellung");
codebuch[3] = rs.getString("Steckverbindung"); codebuch[3] = rs.getString("Steckverbindung");
} }
} catch (SQLException ignored) { } catch (SQLException ignored) {}
}
return codebuch; return codebuch;
} }
......
...@@ -6,41 +6,41 @@ import java.time.LocalDate; ...@@ -6,41 +6,41 @@ import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
/** /**
* Das Codebuch war eines der essentiel wichtigen Sachen bei der Enigma. * Das Codebuch war eines der essentiell wichtigen Sachen bei der Enigma.
* Jeder Enigma gehoerte auch ein Codebuch bei, welches notwendig war um die Nachrichten zu ver/entschluesseln. * Jeder Enigma gehoerte auch ein Codebuch bei, welches notwendig war um die Nachrichten zu ver/entschluesseln.
* Im Codebuch standen für jeden Tag des Monats die notwendigen Einstellungen welche vorgenommen werden * Im Codebuch standen für jeden Tag des Monats die notwendigen Einstellungen welche vorgenommen werden
* mussten um die Texte zu ver/entschluesseln. * mussten, um die Texte zu ver/entschluesseln.
* Hiernach wurden die Walzen eingesetzt, die Ringe für den Ruecksprung der Walze gesetzt und deren Grundeinstellung * Hiernach wurden die Walzen eingesetzt, die Ringe für den Ruecksprung der Walze gesetzt und deren Grundeinstellung
* vorgenommen. * vorgenommen.
* Bei der Enigma um welche es hier geht (Enigma I) gab es zusaetzlich ein Steckbrett, welches ebenfalls im Codebuch * Bei der Enigma I, um welche es hier geht, gab es zusaetzlich ein Steckbrett, welches ebenfalls im Codebuch
* festgelegt war. * festgelegt war.
* <p> * <p>
* Dieses Codebuch Objekt enthaelt die Einstellungen eines Tages, welche mittels Getter und Setter * Dieses Codebuch enthaelt die Einstellungen eines Tages, welche mittels Getter und Setter
* verarbeitet werden koennen. * verarbeitet werden koennen.
* <p> * <p>
* Zusaetzlich gibt es zu Debug Zwecken eine ueberschriebene toString Funktion welche das Objekt als String zurueck * Zusaetzlich gibt es zu Debug-Zwecken eine ueberschriebene toString Funktion, welche das Objekt als String
* geben kann. * zurueckgeben kann.
*/ */
public class Codebuch { public class Codebuch {
//region Variablen //region Variablen
/** /**
* tag : int : gibt den Tag eines Monats an * tag : int : gibt den Tag eines Monats an.
*/ */
private int tag; private int tag;
/** /**
* walzenlage : int[] : legt die Positionen der drei Walzen fest * walzenlage : int[] : legt die Positionen der drei Walzen fest.
*/ */
private int[] walzenlage; private int[] walzenlage;
/** /**
* ringstellung : int[] : legt die Ringstellungen der drei Walzen fest * ringstellung : int[] : legt die Ringstellungen der drei Walzen fest.
*/ */
private int[] ringstellung; private int[] ringstellung;
/** /**
* steckverbindung : char[][] : stellt die Steckverbindungen im Steckbrett dar * steckverbindung : char[][] : legt die Steckverbindungen im Steckbrett fest.
*/ */
private char[][] steckverbindung; private char[][] steckverbindung;
...@@ -48,12 +48,12 @@ public class Codebuch { ...@@ -48,12 +48,12 @@ public class Codebuch {
//region Konstruktor //region Konstruktor
/** /**
* Im Konstruktor werden die Standardwerte gesetzt * Im Konstruktor werden die Standardwerte gesetzt.
* <p> * <p>
* walzenlage : int[3] : Hier wird die Position der drei Walzen festgelegt. * walzenlage : int[3] : Hier wird die Position der drei Walzen festgelegt.
* ringstellung : char[3] : Jede Walze hat einen Ring. Der Index steht für die Walze und der Value für * ringstellung : char[3] : Jede Walze hat einen Ring. Der Index steht fuer die Walze und der Value fuer
* die Position des Ringes. * die Position des Ringes.
* steckverbindung : char[10][] : Zehn Kabel können in das Steckbrett gesteckt werden. In diesem Array werden * steckverbindung : char[10][] : Zehn Kabel koennen in das Steckbrett gesteckt werden. In diesem Array werden
* die Kabel mit ihren jeweiligen Buchsen hinterlegt. * die Kabel mit ihren jeweiligen Buchsen hinterlegt.
*/ */
public Codebuch() { public Codebuch() {
...@@ -76,7 +76,7 @@ public class Codebuch { ...@@ -76,7 +76,7 @@ public class Codebuch {
* Aus dem Tagesschluessel werden die Werte fuer die Walzenlage, Ringstellung und Steckverbindung * Aus dem Tagesschluessel werden die Werte fuer die Walzenlage, Ringstellung und Steckverbindung
* gesetzt. * gesetzt.
* *
* @param tag : int[] : gibt keinen, einen Tag oder mehrere Tage mit * @param tag : int[] : gibt keinen, einen Tag oder mehrere Tage mit.
*/ */
public void fetchTagesschluessel(int... tag) { public void fetchTagesschluessel(int... tag) {
String[] walzenlage, ringstellung, db; String[] walzenlage, ringstellung, db;
...@@ -105,9 +105,9 @@ public class Codebuch { ...@@ -105,9 +105,9 @@ public class Codebuch {
/** /**
* Gibt die aktuelle Instanz des Codebuches als String zurueck. * Gibt die aktuelle Instanz des Codebuches als String zurueck.
* Hierbei werden der Tag die Walzenlagen, Ring-/Grundstellung sowie die Steckverbindungen zurueck gegeben. * Hierbei werden der Tag die Walzenlagen, Ring-/Grundstellung sowie die Steckverbindungen zurueckgegeben.
* *
* @return String : String des gesamten Objektes * @return String : String des gesamten Objektes.
*/ */
@Override @Override
public String toString() { public String toString() {
...@@ -153,7 +153,7 @@ public class Codebuch { ...@@ -153,7 +153,7 @@ public class Codebuch {
//region Setter //region Setter
/** /**
* Setzt die Steckverbindung dieser Instanz * Setzt die Steckverbindung dieser Instanz.
* *
* @param kabel : String[] : Die Steckverbindungen die gesteckt werden sollen. * @param kabel : String[] : Die Steckverbindungen die gesteckt werden sollen.
* Jeder Eintrag im Array ist ein String mit zwei Zeichen. * Jeder Eintrag im Array ist ein String mit zwei Zeichen.
...@@ -171,17 +171,17 @@ public class Codebuch { ...@@ -171,17 +171,17 @@ public class Codebuch {
} }
/** /**
* Setzt die Walzenlage dieser Instanz * Setzt die Walzenlage dieser Instanz.
* *
* @param position : int : Position der Walze * @param position : int : Position der Walze.
* @param walzenlage : int : Welche Walze wurde eingesetzt * @param walzenlage : int : Welche Walze wurde eingesetzt.
*/ */
private void setWalzenlage(int position, int walzenlage) { private void setWalzenlage(int position, int walzenlage) {
this.walzenlage[position] = walzenlage; this.walzenlage[position] = walzenlage;
} }
/** /**
* Setzt die Ringstellung dieser Instanz * Setzt die Ringstellung dieser Instanz.
* *
* @param position : int : Auf welche Walze wird der Ring aufgesetzt? * @param position : int : Auf welche Walze wird der Ring aufgesetzt?
* @param ringstellung : int : An dieser Position soll die nächste Walze weiter gedreht werden. * @param ringstellung : int : An dieser Position soll die nächste Walze weiter gedreht werden.
...@@ -191,9 +191,9 @@ public class Codebuch { ...@@ -191,9 +191,9 @@ public class Codebuch {
} }
/** /**
* Setzt den Tag dieser Instanz * Setzt den Tag dieser Instanz.
* *
* @param tag : int : Tag * @param tag : int : Tag.
*/ */
void setTag(int tag) { void setTag(int tag) {
this.tag = tag; this.tag = tag;
...@@ -203,36 +203,36 @@ public class Codebuch { ...@@ -203,36 +203,36 @@ public class Codebuch {
//region Getter //region Getter
/** /**
* Gibt den Tag dieser Instanz zurueck * Gibt den Tag dieser Instanz zurueck.
* *
* @return int : Tag * @return int : Tag.
*/ */
public int getTag() { public int getTag() {
return tag; return tag;
} }
/** /**
* Gibt die Walzenlage dieser Instanz zurueck * Gibt die Walzenlage dieser Instanz zurueck.
* *
* @return walzenlage : int[] : Walzenlage * @return walzenlage : int[] : Walzenlage.
*/ */
public int[] getWalzenlage() { public int[] getWalzenlage() {
return walzenlage; return walzenlage;
} }
/** /**
* Gibt die Ringstellung dieser Instanz zurueck * Gibt die Ringstellung dieser Instanz zurueck.
* *
* @return ringstellung : int : Ringstellung * @return ringstellung : int : Ringstellung.
*/ */
public int[] getRingstellung() { public int[] getRingstellung() {
return ringstellung; return ringstellung;
} }
/** /**
* Gibt die Steckverbindungen dieser Instanz zurueck * Gibt die Steckverbindungen dieser Instanz zurueck.
* *
* @return steckerverbindung : char[][] : Steckverbindung * @return steckerverbindung : char[][] : Steckverbindung.
*/ */
public char[][] getSteckverbindung() { public char[][] getSteckverbindung() {
return this.steckverbindung; return this.steckverbindung;
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment