summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/config/config_file.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/config/config_file.java')
-rw-r--r--dozentenmodul/src/main/java/config/config_file.java162
1 files changed, 85 insertions, 77 deletions
diff --git a/dozentenmodul/src/main/java/config/config_file.java b/dozentenmodul/src/main/java/config/config_file.java
index 754e67a9..3d562b35 100644
--- a/dozentenmodul/src/main/java/config/config_file.java
+++ b/dozentenmodul/src/main/java/config/config_file.java
@@ -6,69 +6,65 @@ import java.io.IOException;
import org.ini4j.Wini;
public class config_file {
-
- private String configPath = null;
- public boolean createConfig() throws IOException{
+ // Nur die Wini als member
+ private static Wini ini = null;
+
+ // Konstruktor ermittelt der Pfad zur Konfigurationsdatei.
+ // Unterscheidet dabei Windows/Linux
+ public static void init() throws IOException {
+ // Hauptvariablen nur lokal notwendig
+ String configPath = null;
+ File configFile = null;
// Unterscheide zwischen Windows/Unix
String OSName = System.getProperty("os.name").toLowerCase();
System.out.println("Machine's OS: " + OSName);
- if (OSName.contains("windows"))
- {
+ if (OSName.contains("windows")) {
// Windows machine. Use the environment variable 'APPDATA' which
// should point to a path similar to:
// C:\Users\<user>\AppData\Roaming
String appDataPath = System.getenv("APPDATA");
- if (!appDataPath.isEmpty())
- {
- System.out.println("APPDATA: " + appDataPath);
+ if (!appDataPath.isEmpty()) {
configPath = appDataPath + "\\bwSuite\\config.ini";
- }
- else
- {
+ } else {
// APPDATA was empty, let's build it ourselves...
System.out.println("APPDATA ist leer.");
- configPath = System.getProperty("user.home") + "\\AppData\\Roaming\\bwSuite\\config.ini"
-
+ configPath = System.getProperty("user.home") + "\\AppData\\Roaming\\bwSuite\\config.ini";
}
- }
- else if (OSName.contains("linux"))
- {
+ } else if (OSName.contains("linux")) {
configPath=System.getProperty("user.home") + "/.config/bwSuite/config.ini";
-
+ } else {
+ // Nicht Windows oder Linux, TODO MacOS Support?
+ configPath = null;
}
- if (configPath == null)
- {
- System.out.println("Config file path could not be determined.");
- }
- //config_file="C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Roaming\\bwLehrpoolSuite";
//File fuer den Ordner erzeugen
- File configFile=new File(configPath);
- Wini ini;
+ if (!(configPath.isEmpty()||configPath == null)) {
+ configFile = new File(configPath);
+ } else {
+ throw new IOException("Konnte kein Pfad für die Konfigurationsdatei ermitteln.");
+ }
- //Pruefen ob Ordner schon existiert
- if(!configFile.exists())
- {
- System.out.println("Ordner \"bwLehrpoolSuite\" exisitiert nicht - lege ihn jetzt an.");
- //Wenn nicht erzeuge Ordner
- if (!configFile.getParentFile().mkdirs())
- {
- System.out.print("Konnte Verzeichnisstruktur nicht erstellen: " + configFile.getParentFile());
- System.out.println(" - keine weitere Aktion");
- // jetzt nichts mehr
+ // Checke, ob der Ordner existiert.
+ if (!configFile.getParentFile().exists()) {
+ System.out.println("Ordner " + configFile.getParentFile() + " exisitiert nicht - lege ihn jetzt an.");
+ // Wenn nicht, erzeuge Ordner
+ if (!configFile.getParentFile().mkdirs()) {
+ throw new IOException("Konnte '" + configFile.getParentFile() + "' nicht erstellen.");
}
-
- //Erzeuge eine neue Datei
+ }
+
+ // Pruefen, ob Datei schon existiert
+ if (!configFile.exists()) {
+ // Erzeuge eine neue Datei
configFile.createNewFile();
- ini=new Wini(configFile);
-
- //Wenn in die Datei geschrieben werden kann
- if(configFile.canWrite()==true)
- {
- System.out.println("Erzeuge \"config.ini.\"");
+
+ // Wenn in die Datei geschrieben werden kann
+ if(configFile.canWrite()) {
+ ini = new Wini(configFile);
+ System.out.println("Erzeuge '" + configFile + "'...");
//Schreibe Config
ini.put("main", "BillOfRights", false);
ini.put("main", "vmware", false);
@@ -78,44 +74,56 @@ public class config_file {
ini.put("main", "Letzter Uploadpfad", "");
ini.store();
- return true;
} else {
- System.out.println("Konnte \"config.ini\" nicht anlegen - keine weitere Aktion.");
+ throw new IOException("Konnte nicht in '" + configFile + "' schreiben. Haben Sie Rechte dazu?");
}
-
+ } else {
+ System.out.println("'" + configFile + "' existiert bereits - keine weitere Aktion.");
+ ini = new Wini(configFile);
}
- else
- {
- System.out.println("Ordner \"bwLehrpoolSuite\" existiert bereits - keine weitere Aktion.");
- //Wenn Ordner schon existiert, pruefe ob Datei existiert
- if(!configFile.exists())
- {
- System.out.println("\"config.ini\" existiert nicht - lege jetzt an.");
- //Wenn nicht, erzeuge diese
- configFile.createNewFile();
- ini=new Wini(configFile);
-
- if(configFile.canWrite()==true)
- {
- System.out.println("Schreibe jetzt \"config.ini\".");
- //Schreibe Konfig in File
- ini.put("main", "BillOfRights",false);
- ini.put("main", "vmware", false);
- ini.put("main", "Benutzername speichern", false);
- ini.put("main", "Benutzername", "");
- ini.put("main", "Letzter Downloadpfad", "");
- ini.put("main", "Letzter Uploadpfad", "");
- ini.store();
-
- return true;
- } else {
- System.out.println("Kann \"config.ini\" nicht schreiben - keine weitere Aktion.");
- }
- } else {
- System.out.println("\"config.ini\" existiert bereits - keine weitere Aktion.");
- }
+ }
+ // Ende Konstruktor.
+
+ // Public funktion zur Abfrage der Boolean-Werte
+ // Gibt Wert von Attribut 'key' in Sektion 'section', falls es existiert.
+ // Sonst gibt es 'defaultValue' zurück.
+ //
+ // Usage: getBoolean(<section>, <key>, <defaultValue>)
+ // Ex.: getBoolean("main", "Benutzername", "NichtGesetzt");
+ public static boolean getBoolean(String section, String key, Boolean defaultValue) {
+ if (ini.containsKey(section) && ini.get(section).containsKey(key)) {
+ return ini.get(section, key, Boolean.class);
+ } else {
+ return defaultValue;
+ }
+ }
+
+ // Public funktion zur Abfrage der String-Werte
+ // Usage: getBoolean(<key>)
+ public static String getString(String section, String key, String defaultValue) {
+ if (ini.containsKey(section) && ini.get(section).containsKey(key)) {
+ return ini.get(section, key);
+ } else {
+ return defaultValue;
+ }
+ }
+
+ public static boolean setBoolean(String section, String key, Boolean value) {
+ return ini.put(section, key, value) != null;
+ }
+
+ public static boolean setString(String section, String key, String value) {
+ return ini.put(section, key, value) != null;
+ }
+
+ public static boolean store() {
+ try {
+ ini.store();
+ return true;
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
}
- return true;
-
}
}