From 1524aac2391c5b2443f20bdd4ecec1f065b847a0 Mon Sep 17 00:00:00 2001
From: Dennis Eisold <de@itstall.de>
Date: Fri, 29 Nov 2019 15:07:48 +0100
Subject: [PATCH 1/4] Codierer dokumentiert

---
 .../java/projekt/enigma/model/Codierer.java   | 144 ++++++++++++------
 1 file changed, 95 insertions(+), 49 deletions(-)

diff --git a/src/main/java/projekt/enigma/model/Codierer.java b/src/main/java/projekt/enigma/model/Codierer.java
index 2217aaf..91f930f 100644
--- a/src/main/java/projekt/enigma/model/Codierer.java
+++ b/src/main/java/projekt/enigma/model/Codierer.java
@@ -7,24 +7,49 @@ import java.util.Calendar;
 import java.util.Random;
 
 /**
- * TODO: Dokumentieren
+ * Die Codierer Klasse beschreibt den Benutzer welcher die Enigma benutzt.
+ * Alle Vorgänge wie z.B. das zusammenbauen der Hardware, auslesen des Codebuches und das anschließende codieren,
+ * finden hier statt. Dieser ist quasi die Schnittstelle zwischen der GUI (Hauptmann welcher ihm sagt was er zu
+ * verschlüsseln hat), der Enigma und dem Funker im Funkraum, welcher die Nachricht im Anschluß versendet.
  */
 public class Codierer {
 
 	/**
-	 * TODO: Dokumentieren
+	 * Der Klartext Spruchschlüssel zur codierung der Nachricht
 	 */
 	private String spruchschluessel;
+	/**
+	 * Der Spruchschlüssel, mit den Tageswerten aus dem Codebuch, codiert
+	 */
 	private String spruchschluesselCodiert;
-	private String kenngruppe, kenngruppeCodiert;
+	/**
+	 * Die Kenngruppe für die versendeten Nachrichten gedacht sind. Diese ist relevant für den Webservice (Funkraum)
+	 */
+	private String kenngruppe;
+	/**
+	 * Die Kenngruppe wird gleich nach der Eingabe codiert und global gespeichert.
+	 */
+	private String kenngruppeCodiert;
+	/**
+	 * Die Nachricht, welche der Benutzer eingibt, wird als String nachricht gespeichert
+	 * und im laufe der Benutzung ergänzt
+	 */
 	private String nachricht;
+	/**
+	 * Das Hardware Objekt. Hier werden alle Hardware relevanten Baugruppen gespeichert und verarbeitet.
+	 */
 	private Hardware hardware;
+	/**
+	 * Im Codebuch sind die Tageswerte zu finden. Über dieses Objekt kann darauf zugegriffen werden.
+	 */
 	private Codebuch codebuch;
 
 	/**
-	 * TODO: Dokumentieren
+	 * Der Konstruktor des Codierers
+	 * Hier werden die globalen Variablen auf ihre Standart Werte gesetzt sowie die Objekte Initialisiert.
 	 */
 	public Codierer() {
+
 		this.nachricht = "";
 		this.spruchschluessel = "";
 		this.spruchschluesselCodiert = "";
@@ -74,16 +99,15 @@ public class Codierer {
 
 	/**
 	 * Hier wird ein neuer Spruchschlüssel generiert.
+	 * <p>
 	 * Mit diesem werden die Walzen auf eine neue Startposition gestellt und dem Kopf, mit dem
 	 * Tagesschlüssel codiert, hinzugefügt.
-	 * <p>
+	 * <br>
 	 * Hierfür wird mittels der Funktion "randomBuchstabe" ein zufälliger Buchstabe generiert,
-	 * und geschaut ob dieser bereits in der globalen Variable this.spruchschluessel vorhanden ist.
+	 * und geschaut ob dieser bereits in der globalen Variable (this.spruchschluessel) vorhanden ist.
 	 * Wenn nicht, wird der Buchstabe dem Spruchschlüssel hinzugefügt.
-	 * <p>
+	 * <br>
 	 * Dies wir nun so lange gemacht bis der Spruchschlüssel eine länge von drei Zeichen hat.
-	 * <p>
-	 * TODO: Doku aktuallisieren
 	 */
 	public void generateSpruchschluessel() {
 
@@ -109,7 +133,8 @@ public class Codierer {
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Der Spruchschlüssel wird, mit dem Tagesschlüssel codiert und als globale Variable gespeichert.
+	 * Dieser wird später an den Nachrichten Kopf angehängt.
 	 *
 	 * @return String : Der codierte Spruchschlüssel
 	 */
@@ -118,7 +143,8 @@ public class Codierer {
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Der Spruchschlüssel wird, zur internen Verwendung, auch im Klartext gespeichert.
+	 * Wir brauchen diesen dann zum codieren der eigentlichen Nachricht.
 	 *
 	 * @return String : Der klartext Spruchschlüssel
 	 */
@@ -127,14 +153,14 @@ public class Codierer {
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Erstellen des Nachrichten Kopfes.
+	 * Hierfür wird die aktuelle Uhrzeit ausgelesen, die Länge der Nachricht sowie der, mit den
+	 * Tagescodes codierte, Spruchschlüssel.
 	 */
 	private String generateKopf() {
 		Calendar cal = Calendar.getInstance();
 
 		// Uhrzeit an den Kopf hängen
-		// TODO: Da gab es doch noch eine besser Lösung für den Korrekturfaktor der Uhrzeit?
-
 		return String.format("%02d%02d", cal.get(Calendar.HOUR), cal.get(Calendar.MINUTE)) + " " +
 
 				// Zeichen Anzahl der Nachricht
@@ -142,9 +168,6 @@ public class Codierer {
 
 				// Spruchschlüssel anhängen
 				this.spruchschluesselCodiert.substring(0, 3) + " " + this.spruchschluesselCodiert.substring(3, 6) + " ";
-
-		// Kenngruppe an das Ende setzen
-		//this.kenngruppeCodiert;
 	}
 
 	/**
@@ -191,7 +214,7 @@ public class Codierer {
 			StringBuilder sb = new StringBuilder();
 
 			sb.append(nachricht[1], 0, 16);
-			for(int i = 17; i <= nachricht[1].length();) {
+			for (int i = 17; i <= nachricht[1].length(); ) {
 				if ((i + 5) < nachricht[1].length()) {
 					sb.append(nachricht[1], i, i + 5).append(" ");
 					i += 5;
@@ -240,7 +263,7 @@ public class Codierer {
 	/**
 	 * Gibt die aktuellen Buchstaben auf den Walzen zurück
 	 *
-	 * @return
+	 * @return char[] : Walzen Array mit der aktuellen Position
 	 */
 	public char[] getWalzen() {
 		char[] walzen = new char[3];
@@ -261,9 +284,12 @@ public class Codierer {
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Hier wird ein einzelner Buchstabe verschlüsselt.
+	 * Man muss hier ebenfalls mitgeben ob der codierte String in Codierer.nachricht gespeichert werden soll oder nicht.
+	 * In der Regel ist dies der Fall.
 	 *
-	 * @param buchstabe
+	 * @param buchstabe : char : Der zu codierende Buchstabe
+	 * @param save      : boolean : Nachricht speichern oder nicht
 	 * @return
 	 */
 	public char codiere(char buchstabe, boolean save) {
@@ -276,11 +302,13 @@ public class Codierer {
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Codiert den Übergebenen String.
+	 * Man muss hier ebenfalls mitgeben ob der codierte String in Codierer.nachricht gespeichert werden soll oder nicht.
+	 * In der Regel ist dies der Fall.
 	 *
-	 * @param klartext
-	 * @param save
-	 * @return
+	 * @param klartext : String : Der zu codierende Text
+	 * @param save     : boolean : Nachricht speichern oder nicht
+	 * @return String : Der codierte Text zusätzlich als Rückgabe
 	 */
 	public String codiere(String klartext, boolean save) {
 
@@ -294,7 +322,9 @@ public class Codierer {
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Diese Funktion erwartet als (codierteNachricht) eine korrekte Enigma Nachricht.
+	 * Ihr muss auch der Tag der codierung mitgegeben werden. Dieser weiß dein Funker im Funkraum.
+	 * In der Regel ist dies der Tag des Nachrichten empfangs.
 	 *
 	 * @param codierteNachricht : String : Enigma codierte Nachricht
 	 * @param tag               : int : Tag der Nachricht
@@ -332,10 +362,11 @@ public class Codierer {
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Zerlegt den übergebenen String in einen char Array und decodiert jedes Zeichen.
+	 * Der String wird dann decodiert zurück gegeben.
 	 *
-	 * @param nachricht
-	 * @return
+	 * @param nachricht : String : Der zu decodierende Text
+	 * @return String : Der decodierte Text
 	 */
 	public String decodiereString(String nachricht) {
 
@@ -351,51 +382,66 @@ public class Codierer {
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Setzt die Enigma auf die Einstellungen des aktuellen Tages, aus dem Codebuch zurück.
 	 */
 	public void resetHardware() {
 		this.initialisiereHardware();
 	}
 
 	/**
-	 * Setzt die Walze auf der Position (walzenPosition) in die Enigma ein.
-	 * Mit dem char (position) sagt man auf welchen Buchstaben sie eingestellt werden soll.
+	 * Setzt den anzuzeigenden Buchstaben (buchstabe) auf der Walze (wlazenPosition)
+	 * TODO: Wenn die Walzen, Notches, Kabel, etc. verändert werden, muss die bisherige Nachricht (this.nachricht) gelöscht werden.
 	 *
-	 * @param walzenPosition
-	 * @param position
+	 * @param walzenPosition : int : Nummer der Walze
+	 * @param buchstabe      : char : Buchstabe der zugewiesen soll
 	 */
-	public void setWalze(int walzenPosition, char position) {
-		this.hardware.setzePosition(walzenPosition, position);
+	public void setWalze(int walzenPosition, char buchstabe) {
+		this.hardware.setzePosition(walzenPosition, buchstabe);
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Setzt den Ring auf der Walze auf einen neuen Umstprungwert.
 	 *
-	 * @param walzenPosition
-	 * @param position
+	 * @param walzenPosition : int : Walze auf die der Ring gesteckt wird
+	 * @param umsprungPunkt  : int : Buchstabe auf dem der Notch sitzt
 	 */
-	public void setRing(int walzenPosition, int position) {
-		this.hardware.setzeRing(walzenPosition, position);
+	public void setRing(int walzenPosition, int umsprungPunkt) {
+		this.hardware.setzeRing(walzenPosition, umsprungPunkt);
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Setzt die Walze (walzeNr) in die Position (walzenPosition) der Enigma ein.
+	 * Mit (ringstellung) gibt man die Position des Umsprungpunktes an.
 	 *
-	 * @param walzenPosition
-	 * @param walzeNr
+	 * @param walzenPosition : int : Position der Walze in der Enigma (1-2-3)
+	 * @param walzeNr        : int : Nummer der Walze die eingesetzt wird
+	 * @param ringstellung   : int : Stellung des Ringes
 	 */
-	public void setWalzeNr(int walzenPosition, int walzeNr) {
-		this.hardware.setzeWalzenNr(walzenPosition, walzeNr, 1);
+	public void setWalzeNr(int walzenPosition, int walzeNr, int ringstellung) {
+		this.hardware.setzeWalzenNr(walzenPosition, walzeNr, ringstellung);
 	}
 
 	/**
-	 * TODO: Dokumentieren
+	 * Setzt das Kabel in beide Ports ein und fügt es dem Steckbrett Array hinzu.
 	 *
-	 * @param feldNr
-	 * @param verbindung
+	 * @param feldNr     : int : Kabel Nummer welches am Steckbrett eingesteckt wird
+	 * @param verbindung : String : Verbindung welche die vertauschten Buchstaben angibt
 	 */
 	public void setSteckbrett(int feldNr, String verbindung) {
 		this.hardware.getSteckbrett().setzeVertauschung(verbindung.charAt(0), verbindung.charAt(1));
 	}
 
+	/**
+	 * Prüft ob der Port auf den das Kabel gesteckt werden soll, noch frei ist.
+	 * <p>
+	 * TODO: Prüfen ob im aktuellen Feld bereits zwei Buchstaben stehen, wenn ja, nach erfolg dieser Funktion,
+	 * setSteckbrett ausführen mit beiden Buchstaben als String
+	 *
+	 * @param buchstabe : char : Der zuletzt eingegebene Buchstabe
+	 * @return boolean : Wenn der Buchstabe nicht vorhanden ist, wird true zurückgegeben, ansonsten false
+	 */
+	public boolean pruefeSteckbrettPort(char buchstabe) {
+		return true;
+	}
+
 }
-- 
GitLab


From 5b81c1d0e17d94e575bc8f002ce933eeb4094d2d Mon Sep 17 00:00:00 2001
From: Dennis Eisold <de@itstall.de>
Date: Fri, 29 Nov 2019 15:10:45 +0100
Subject: [PATCH 2/4] =?UTF-8?q?Unn=C3=B6tige=20Variablen=20und=20Funktione?=
 =?UTF-8?q?n=20raus=20gel=C3=B6scht.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/projekt/enigma/model/Codierer.java   | 32 +++----------------
 1 file changed, 4 insertions(+), 28 deletions(-)

diff --git a/src/main/java/projekt/enigma/model/Codierer.java b/src/main/java/projekt/enigma/model/Codierer.java
index 91f930f..11ccd13 100644
--- a/src/main/java/projekt/enigma/model/Codierer.java
+++ b/src/main/java/projekt/enigma/model/Codierer.java
@@ -26,10 +26,6 @@ public class Codierer {
 	 * Die Kenngruppe für die versendeten Nachrichten gedacht sind. Diese ist relevant für den Webservice (Funkraum)
 	 */
 	private String kenngruppe;
-	/**
-	 * Die Kenngruppe wird gleich nach der Eingabe codiert und global gespeichert.
-	 */
-	private String kenngruppeCodiert;
 	/**
 	 * Die Nachricht, welche der Benutzer eingibt, wird als String nachricht gespeichert
 	 * und im laufe der Benutzung ergänzt
@@ -54,7 +50,6 @@ public class Codierer {
 		this.spruchschluessel = "";
 		this.spruchschluesselCodiert = "";
 		this.kenngruppe = "";
-		this.kenngruppeCodiert = "";
 		this.codebuch = new Codebuch();
 		this.codebuch.fetchTagesschluessel();
 	}
@@ -128,18 +123,8 @@ public class Codierer {
 		this.hardware.setzePosition(1, this.spruchschluessel.charAt(1));
 		this.hardware.setzePosition(2, this.spruchschluessel.charAt(2));
 
-		// Die Kenngruppe codieren
-		this.kenngruppeCodiert = this.codiere(this.kenngruppe, true);
-	}
-
-	/**
-	 * Der Spruchschlüssel wird, mit dem Tagesschlüssel codiert und als globale Variable gespeichert.
-	 * Dieser wird später an den Nachrichten Kopf angehängt.
-	 *
-	 * @return String : Der codierte Spruchschlüssel
-	 */
-	public String getSpruchschluesselCodiert() {
-		return this.spruchschluesselCodiert;
+		// Die Kenngruppe codieren und in der Nachricht speichern
+		this.codiere(this.kenngruppe, true);
 	}
 
 	/**
@@ -274,15 +259,6 @@ public class Codierer {
 		return walzen;
 	}
 
-	/**
-	 * Setzt ein neues Hardware Objekt
-	 *
-	 * @param hardware : Hardware
-	 */
-	public void setHardware(Hardware hardware) {
-		this.hardware = hardware;
-	}
-
 	/**
 	 * Hier wird ein einzelner Buchstabe verschlüsselt.
 	 * Man muss hier ebenfalls mitgeben ob der codierte String in Codierer.nachricht gespeichert werden soll oder nicht.
@@ -290,7 +266,7 @@ public class Codierer {
 	 *
 	 * @param buchstabe : char : Der zu codierende Buchstabe
 	 * @param save      : boolean : Nachricht speichern oder nicht
-	 * @return
+	 * @return char     : Der codierte Buchstabe
 	 */
 	public char codiere(char buchstabe, boolean save) {
 		char codiert = this.hardware.codiere(buchstabe);
@@ -368,7 +344,7 @@ public class Codierer {
 	 * @param nachricht : String : Der zu decodierende Text
 	 * @return String : Der decodierte Text
 	 */
-	public String decodiereString(String nachricht) {
+	private String decodiereString(String nachricht) {
 
 		StringBuilder sb = new StringBuilder();
 
-- 
GitLab


From 69147744f2fe5b0cfc8515bc22d5a7f80b81dffb Mon Sep 17 00:00:00 2001
From: Dennis Eisold <de@itstall.de>
Date: Fri, 29 Nov 2019 16:17:53 +0100
Subject: [PATCH 3/4] resetDisplay beim initialisieren setzen. #1

---
 .../java/projekt/enigma/GuiController.java    | 59 +++++++++++--------
 1 file changed, 33 insertions(+), 26 deletions(-)

diff --git a/src/main/java/projekt/enigma/GuiController.java b/src/main/java/projekt/enigma/GuiController.java
index 2e06eb6..9a888b3 100644
--- a/src/main/java/projekt/enigma/GuiController.java
+++ b/src/main/java/projekt/enigma/GuiController.java
@@ -1,11 +1,11 @@
 package projekt.enigma;
 
-import projekt.enigma.model.Codierer;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.scene.control.*;
 import javafx.scene.shape.Circle;
 import org.apache.http.HttpException;
+import projekt.enigma.model.Codierer;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -379,17 +379,24 @@ public class GuiController {
 		this.codierer = new Codierer();
 		this.codierer.setKenngruppe("enigma");
 
+		this.resetDisplay = true;
+
 		// Walzen auf ihre Position setzen. Der Spruchschlüssel ist hier bereits berücksichtigt.
 		mBtnStartPos1.setText(String.valueOf(this.codierer.getWalzen()[0]));
 		mBtnStartPos2.setText(String.valueOf(this.codierer.getWalzen()[1]));
 		mBtnStartPos3.setText(String.valueOf(this.codierer.getWalzen()[2]));
 	}
 
+	/**
+	 * TODO: Die Löschen Funktion muss noch ausgeschrieben werden. Der letzte char muss aus beiden
+	 * Feldern entfernt werden.
+	 * Der Codierer muss den letzten Buchstaben aus (codierer.nachricht) löschen und die Walzen um eines zurück drehen.
+	 */
 	@FXML
 	private void loeschen() {
-		if (textEingabe.length()==0){
+		if (textEingabe.length() == 0) {
 			tfKlartext.setText("");
-		}else {
+		} else {
 			textEingabe = textEingabe.substring(0, textEingabe.length() - 1);
 			tfKlartext.setText(textEingabe);
 		}
@@ -431,18 +438,18 @@ public class GuiController {
 	private void listener(MenuButton mb, MenuItem mi) {
 		// mb.setText(mi.getText());
 
-		if(mb.getId().equals(mBtnStartPos1.getId()))setzePosition(1,mi.getText().charAt(0));
-		if(mb.getId().equals(mBtnStartPos2.getId()))setzePosition(2,mi.getText().charAt(0));
-		if(mb.getId().equals(mBtnStartPos3.getId()))setzePosition(3,mi.getText().charAt(0));
-		if(mb.getId().equals(mBtnWalzPos1.getId()))setzeWalze(1,mi.getText());
-		if(mb.getId().equals(mBtnWalzPos2.getId()))setzeWalze(2,mi.getText());
-		if(mb.getId().equals(mBtnWalzPos3.getId()))setzeWalze(3,mi.getText());
-		if(mb.getId().equals(mBtnNotchPos1.getId()))
-			setzeRing(1,Integer.parseInt(mi.getText())-1);
-		if(mb.getId().equals(mBtnNotchPos2.getId()))
-			setzeRing(2,Integer.parseInt(mi.getText())-1);
-		if(mb.getId().equals(mBtnNotchPos3.getId()))
-			setzeRing(3,Integer.parseInt(mi.getText())-1);
+		if (mb.getId().equals(mBtnStartPos1.getId())) setzePosition(1, mi.getText().charAt(0));
+		if (mb.getId().equals(mBtnStartPos2.getId())) setzePosition(2, mi.getText().charAt(0));
+		if (mb.getId().equals(mBtnStartPos3.getId())) setzePosition(3, mi.getText().charAt(0));
+		if (mb.getId().equals(mBtnWalzPos1.getId())) setzeWalze(1, mi.getText());
+		if (mb.getId().equals(mBtnWalzPos2.getId())) setzeWalze(2, mi.getText());
+		if (mb.getId().equals(mBtnWalzPos3.getId())) setzeWalze(3, mi.getText());
+		if (mb.getId().equals(mBtnNotchPos1.getId()))
+			setzeRing(1, Integer.parseInt(mi.getText()) - 1);
+		if (mb.getId().equals(mBtnNotchPos2.getId()))
+			setzeRing(2, Integer.parseInt(mi.getText()) - 1);
+		if (mb.getId().equals(mBtnNotchPos3.getId()))
+			setzeRing(3, Integer.parseInt(mi.getText()) - 1);
 	}
 
 	/**
@@ -508,7 +515,7 @@ public class GuiController {
 	 */
 	private void setText(Button b) {
 		if (textEingabe.length() < 250) {
-			if(this.resetDisplay) {
+			if (this.resetDisplay) {
 				this.tfCodiert.setText("");
 				this.tfKlartext.setText("");
 				this.resetDisplay = false;
@@ -543,26 +550,26 @@ public class GuiController {
 	 * Setzt die Anzeige des entsprechende Gui-Element auf die entsprechende Walze
 	 * ->d.h. welche Walze sitzt auf welcher Position
 	 *
-	 * @param walzeRoemischNr    => gibt die Walzennummer an
-	 * @param walzenPosition => gibt die Position der Walze
+	 * @param walzeRoemischNr => gibt die Walzennummer an
+	 * @param walzenPosition  => gibt die Position der Walze
 	 */
 	private void setzeWalze(int walzenPosition, String walzeRoemischNr) {
-		int walzeNr=0;
-		switch (walzeRoemischNr){
+		int walzeNr = 0;
+		switch (walzeRoemischNr) {
 			case "I":
-				walzeNr=0;
+				walzeNr = 0;
 				break;
 			case "II":
-				walzeNr=1;
+				walzeNr = 1;
 				break;
 			case "III":
-				walzeNr=2;
+				walzeNr = 2;
 				break;
 			case "IV":
-				walzeNr=4;
+				walzeNr = 4;
 				break;
 			case "V":
-				walzeNr=4;
+				walzeNr = 4;
 				break;
 			default:
 				break;
@@ -590,7 +597,7 @@ public class GuiController {
 	 * Mitnahmeposition meint => die nächste Walze wird bei erreichen dieser Position (notch)
 	 * um eine Stelle versetzt
 	 *
-	 * @param ringStellung    => gibt die walze an
+	 * @param ringStellung   => gibt die walze an
 	 * @param walzenPosition => gibt den notch der Walze (walze) an
 	 */
 	private void setzeRing(int walzenPosition, int ringStellung) {
-- 
GitLab


From 0347d07b9f33f6d024b7112dfe6bd9e9426ea92c Mon Sep 17 00:00:00 2001
From: Dennis Eisold <de@itstall.de>
Date: Fri, 29 Nov 2019 16:34:24 +0100
Subject: [PATCH 4/4] Pfad zur SQLite Resource korrigiert.

---
 src/main/java/projekt/enigma/database/DatenbankSqlite.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/projekt/enigma/database/DatenbankSqlite.java b/src/main/java/projekt/enigma/database/DatenbankSqlite.java
index 401af57..ac7c902 100644
--- a/src/main/java/projekt/enigma/database/DatenbankSqlite.java
+++ b/src/main/java/projekt/enigma/database/DatenbankSqlite.java
@@ -22,7 +22,7 @@ public class DatenbankSqlite {
 	 */
 	private Connection connect() {
 
-		String url = "jdbc:sqlite::resource:enigma/codebuch.sqlite";
+		String url = "jdbc:sqlite::resource:projekt/enigma/codebuch.sqlite";
 		Connection conn = null;
 
 		try {
-- 
GitLab