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
No related merge requests found
......@@ -3,25 +3,24 @@ package projekt.enigma.database;
import java.sql.*;
/**
* Dies ist die SQLite Datenbank Klasse
* In der SQLite Datei im Resources Ordner liegt das Codebuch welches benötigt wird um die
* Nachrichten mit der Enigma zu ver/entschlüsseln.
* Dies ist die SQLite Datenbank Klasse.
* In der SQLite Datei im Resources Ordner liegt das Codebuch welches benoetigt wird um die
* Nachrichten mit der Enigma zu ver/entschluesseln.
* 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.
* 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 {
/**
* 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.
*
* @return conn : Connection
* @return conn : Connection: statische Datenbankverbindung.
*/
private Connection connect() {
String url = "jdbc:sqlite::resource:projekt/enigma/codebuch.sqlite";
Connection conn = null;
......@@ -35,15 +34,15 @@ public class DatenbankSqlite {
}
/**
* Liest das Codebuch aus der SQLite Datenbank aus
* Dieser Funktion muss ein tag als int Wert übergeben werden.
* Anschließend wir eine Verbindung zur SQLite Datenbank aufgebaut und das Codebuch angefragt.
* Dieses wird in ein Object vom Type Codebuch gepackt und zurück gegeben.
* Liest das Codebuch aus der SQLite Datenbank aus.
* Dieser Funktion muss ein tag als int Wert uebergeben werden.
* Anschließend wird eine Verbindung zur SQLite Datenbank aufgebaut und das Codebuch angefragt.
* 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.
* @return String : Die Einstellungen des angefragten Tages
* @param tag : int : Tag fuer welchen ein Codebuch benoetigt wird.
* @return String : Die Einstellungen des angefragten Tages.
* <p>
* String[0] : Tag
* String[1] : Walzenlage
......@@ -52,12 +51,11 @@ public class DatenbankSqlite {
* </p>
*/
public String[] getCodebuch(int tag) {
String[] codebuch = new String[4];
try {
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);
ResultSet rs = pstm.executeQuery();
......@@ -67,8 +65,7 @@ public class DatenbankSqlite {
codebuch[2] = rs.getString("Ringstellung");
codebuch[3] = rs.getString("Steckverbindung");
}
} catch (SQLException ignored) {
}
} catch (SQLException ignored) {}
return codebuch;
}
......
......@@ -6,41 +6,41 @@ import java.time.LocalDate;
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.
* 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
* 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.
* <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.
* <p>
* Zusaetzlich gibt es zu Debug Zwecken eine ueberschriebene toString Funktion welche das Objekt als String zurueck
* geben kann.
* Zusaetzlich gibt es zu Debug-Zwecken eine ueberschriebene toString Funktion, welche das Objekt als String
* zurueckgeben kann.
*/
public class Codebuch {
//region Variablen
/**
* tag : int : gibt den Tag eines Monats an
* tag : int : gibt den Tag eines Monats an.
*/
private int tag;
/**
* walzenlage : int[] : legt die Positionen der drei Walzen fest
* walzenlage : int[] : legt die Positionen der drei Walzen fest.
*/
private int[] walzenlage;
/**
* ringstellung : int[] : legt die Ringstellungen der drei Walzen fest
* ringstellung : int[] : legt die Ringstellungen der drei Walzen fest.
*/
private int[] ringstellung;
/**
* steckverbindung : char[][] : stellt die Steckverbindungen im Steckbrett dar
* steckverbindung : char[][] : legt die Steckverbindungen im Steckbrett fest.
*/
private char[][] steckverbindung;
......@@ -48,12 +48,12 @@ public class Codebuch {
//region Konstruktor
/**
* Im Konstruktor werden die Standardwerte gesetzt
* Im Konstruktor werden die Standardwerte gesetzt.
* <p>
* 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
* die Position des Ringes.
* steckverbindung : char[10][] : Zehn Kabel können in das Steckbrett gesteckt werden. In diesem Array werden
* ringstellung : char[3] : Jede Walze hat einen Ring. Der Index steht fuer die Walze und der Value fuer
* die Position des Ringes.
* steckverbindung : char[10][] : Zehn Kabel koennen in das Steckbrett gesteckt werden. In diesem Array werden
* die Kabel mit ihren jeweiligen Buchsen hinterlegt.
*/
public Codebuch() {
......@@ -76,7 +76,7 @@ public class Codebuch {
* Aus dem Tagesschluessel werden die Werte fuer die Walzenlage, Ringstellung und Steckverbindung
* 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) {
String[] walzenlage, ringstellung, db;
......@@ -105,9 +105,9 @@ public class Codebuch {
/**
* 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
public String toString() {
......@@ -153,7 +153,7 @@ public class Codebuch {
//region Setter
/**
* Setzt die Steckverbindung dieser Instanz
* Setzt die Steckverbindung dieser Instanz.
*
* @param kabel : String[] : Die Steckverbindungen die gesteckt werden sollen.
* Jeder Eintrag im Array ist ein String mit zwei Zeichen.
......@@ -171,17 +171,17 @@ public class Codebuch {
}
/**
* Setzt die Walzenlage dieser Instanz
* Setzt die Walzenlage dieser Instanz.
*
* @param position : int : Position der Walze
* @param walzenlage : int : Welche Walze wurde eingesetzt
* @param position : int : Position der Walze.
* @param walzenlage : int : Welche Walze wurde eingesetzt.
*/
private void setWalzenlage(int position, int 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 ringstellung : int : An dieser Position soll die nächste Walze weiter gedreht werden.
......@@ -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) {
this.tag = tag;
......@@ -203,36 +203,36 @@ public class Codebuch {
//region Getter
/**
* Gibt den Tag dieser Instanz zurueck
* Gibt den Tag dieser Instanz zurueck.
*
* @return int : Tag
* @return int : Tag.
*/
public int getTag() {
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() {
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() {
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() {
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