-
Notifications
You must be signed in to change notification settings - Fork 0
Saver
Der Datentyp "Saver" ist in der Lage, Projektverzeichnisse des Nutzers zu verwalten und vom Programm modifizierten Java-Code darin zu speichern.
Bei der Instanziierung des Datentyps wird der Projektname übergeben, der danach fest mit dem Saver verbunden ist. Über die Funktion getProjectName() kann der Name außerdem ausgelesen werden.
save: Diese Funktion bekommt eine Statusvariable und den zu speichernden Code als String übergeben. Zuerst wird der Status überprüft, da dieser entscheidet, in welchem Verzeichnis der Code gespeichert wird. Alle Projekte werden im "data"-Ordner gespeichert, in dem sich auch die Log-Datei der Tracking-Erweiterung befindet. Der Name des Projektordners richtet sich nach dem Projektnamen, der im Saver fest gespeichert ist. Der Testcode wird im Ordner "test" gespeichert, der Programmcode in "code" und der temporäre Programmcode in "temp". Ist Babysteps aktiviert, werden die Dateien in einen zusätzlichen "babysteps"-Ordner verlagert.
Für den Code wird jeweils eine entsprechende .java-Datei erstellt, deren Dateiname mit dem Klassennamen des übergebenen Codes übereinstimmt. Dieser wird von der Methode "getFileName" aus dem Code ausgelesen. Enthält der Code keinen gültigen Klassennamen, wird er nicht abgespeichert.
Zum Speichern des Codes wird die Funktion "saveFile" aufgerufen, die durch das Aufrufen von "createPath" dafür sorgt, dass die gewünschte Ordnerstruktur erstellt wird, wenn sie noch nicht existiert. Hierzu wird der gewünschte Dateipfad ordnerweise abgearbeitet, wobei nicht (mehr) existierende Ordner (neu) erstellt werden.
Der Javacode wird schließlich in der gewünschten .java-Datei gespeichert, die sowohl als Zwischenspeicher für das Programm als auch als Speicherdatei für den Nutzer dient.
\o/ Two Finger Joe \o/
Verzeichnis
Catalogue
- [Dateiformat](Catalogue.cfg Format)
- ParseSource
- ParseHelper
- CatalogueReader
- Catalogue, Project, ...
Controller
- Logic
- [Main Controller](Main Controller)
- [Project Controller](Project Controller)
File Interaction
Tracking