Package de.willuhn.util
Class Settings
- java.lang.Object
-
- de.willuhn.util.Settings
-
public class Settings extends java.lang.Object
Diese Klasse erweitert Java-Properties um Typsicherheit fuer primitive Typen, Support zum Laden und Speichern von String-Arrays, automatisches Abspeichern beim Aufruf einer Set-Methode und sogar Speichern schon beim Lesen. Das ist nuetzlich, wenn man eine Software ohne properties-Dateien ausliefern will aber dennoch nach dem ersten Start beim Benutzer die Config-Dateien mit den Default-Werten angelegt werden damit dieser nicht in der Dokumentation nach den Schluesselnamen suchen muss sondern sie bereits mit Default-Werten in den Dateien vorfindet. Wird die Properties-Datei von aussen (z.Bsp. mit einem Texteditor) geaendert, wird das automatisch erkannt und die Datei intern neu geladen.- Author:
- willuhn
-
-
Constructor Summary
Constructors Constructor Description Settings(java.io.File systemFile, java.io.File userFile)
Erzeugt eine neue Instanz.Settings(java.lang.String path, java.lang.Class clazz)
Erzeugt eine neue Instanz der Settings, die exclusiv nur fuer diese Klasse gelten.Settings(java.lang.String systemPath, java.lang.String userPath, java.lang.Class clazz)
Erzeugt eine neue Instanz der Settings, die exclusiv nur fuer diese Klasse gelten.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String[]
getAttributes()
Liefert eine Liste aller Attribut-Namen, die in dieser Settings-Instanz gespeichert wurden.boolean
getBoolean(java.lang.String name, boolean defaultValue)
Liefert den Wert des genannten Attributs als Boolean.double
getDouble(java.lang.String name, double defaultValue)
Liefert den Wert des genannten Attributs als double.int
getInt(java.lang.String name, int defaultValue)
Liefert den Wert des genannten Attributs als int.java.lang.String[]
getList(java.lang.String name, java.lang.String[] defaultValues)
Liefert ein Array von Werten.long
getLong(java.lang.String name, long defaultValue)
Liefert den Wert des genannten Attributs als long.java.lang.String
getString(java.lang.String name, java.lang.String defaultValue)
Liefert den Wert des Attribute.void
setAttribute(java.lang.String name, boolean value)
Speichert einen boolschen Wert.void
setAttribute(java.lang.String name, double value)
Speichert einen Double-Wert.void
setAttribute(java.lang.String name, int value)
Speichert einen Integer-Wert.void
setAttribute(java.lang.String name, long value)
Speichert einen Long-Wert.void
setAttribute(java.lang.String name, java.lang.String value)
Speichert das Attributmit dem zugehoerigen Wert . void
setAttribute(java.lang.String name, java.lang.String[] values)
Speichert das Attributmit der zugehoerigen Liste von Werten . void
setStoreWhenRead(boolean b)
Legt fest, ob die Einstellungen schon beim Lesen gespeichert werden sollen.
-
-
-
Constructor Detail
-
Settings
public Settings(java.lang.String path, java.lang.Class clazz)
Erzeugt eine neue Instanz der Settings, die exclusiv nur fuer diese Klasse gelten. Existieren bereits Settings fuer die Klasse, werden sie gleich geladen. Hierbei wird eine Properties-Datei [classname].properties im angegebenen Verzeichnis angelegt.- Parameters:
path
- Pfad zu den Einstellungen.clazz
- Klasse, fuer die diese Settings gelten.
-
Settings
public Settings(java.lang.String systemPath, java.lang.String userPath, java.lang.Class clazz)
Erzeugt eine neue Instanz der Settings, die exclusiv nur fuer diese Klasse gelten. Existieren bereits Settings fuer die Klasse, werden sie gleich geladen. Hierbei wird eine Properties-Datei [classname].properties im angegebenen Verzeichnis angelegt.- Parameters:
systemPath
- Pfad zu ggf vorhandenen System-Presets.userPath
- Pfad zu den User-Einstellungen.clazz
- Klasse, fuer die diese Settings gelten.
-
Settings
public Settings(java.io.File systemFile, java.io.File userFile)
Erzeugt eine neue Instanz.- Parameters:
systemFile
- Properties-Datei mit den System-Vorgaben.userFile
- Properties-Datei des Users, welche die System-Vorgaben ueberschreiben.
-
-
Method Detail
-
setStoreWhenRead
public void setStoreWhenRead(boolean b)
Legt fest, ob die Einstellungen schon beim Lesen gespeichert werden sollen. Hintergrund: Jede Get-Funktion (getString(), getBoolean(),..) besitzt einen Parameter mit dem Default-Wert falls der Parameter noch nicht existiert. Ist dies der Fall und die zugehoerige Set-Methode wird nie aufgerufen, dann erscheint der Parameter nie physisch in der properties-Datei. Diese muesste dann manuell mit den Parametern befuellt werden, um sie aendern zu koennen. Da die Parameter-Namen aber nur in der Java-Klasse bekannt sind, wird es einem Fremden schwer fallen, die Namen der Parameter zu ermitteln. Fuer genau diesen Fall kann der Parameter auf true gesetzt werden. Alle abgefragten Parameter, werden dann nach der Abfrage mit dem aktuellen Wert (ggf. dem Default-Wert) sofort gespeichert. Der Default-Wert ist "false". Per Default wird beim Lesen also nicht geschrieben.- Parameters:
b
- true, wenn sofort geschrieben werden soll.
-
getAttributes
public java.lang.String[] getAttributes()
Liefert eine Liste aller Attribut-Namen, die in dieser Settings-Instanz gespeichert wurden.- Returns:
- Liste der Attribut-Namen.
-
getBoolean
public boolean getBoolean(java.lang.String name, boolean defaultValue)
Liefert den Wert des genannten Attributs als Boolean. Wird das Attribut nicht gefunden oder hat keinen Wert, wird defaultValue zurueckgegeben.- Parameters:
name
- Name des Attributs.defaultValue
- DefaultWert, wenn das Attribut nicht existiert.- Returns:
- true oder false.
-
getInt
public int getInt(java.lang.String name, int defaultValue)
Liefert den Wert des genannten Attributs als int. Wird das Attribut nicht gefunden oder hat keinen Wert, wird defaultValue zurueckgegeben. Hinweis: Die Funktion wirft keine NumberFormat-Exception, wenn der Wert nicht in eine Zahl gewandelt werden kann. Stattdessen wird der Default-Wert zurueckgegeben.- Parameters:
name
- Name des Attributs.defaultValue
- DefaultWert, wenn das Attribut nicht existiert.- Returns:
- der Wert des Attributs.
-
getLong
public long getLong(java.lang.String name, long defaultValue)
Liefert den Wert des genannten Attributs als long. Wird das Attribut nicht gefunden oder hat keinen Wert, wird defaultValue zurueckgegeben. Hinweis: Die Funktion wirft keine NumberFormat-Exception, wenn der Wert nicht in eine Zahl gewandelt werden kann. Stattdessen wird der Default-Wert zurueckgegeben.- Parameters:
name
- Name des Attributs.defaultValue
- DefaultWert, wenn das Attribut nicht existiert.- Returns:
- der Wert des Attributs.
-
getDouble
public double getDouble(java.lang.String name, double defaultValue)
Liefert den Wert des genannten Attributs als double. Wird das Attribut nicht gefunden oder hat keinen Wert, wird defaultValue zurueckgegeben. Hinweis: Die Funktion wirft keine NumberFormat-Exception, wenn der Wert nicht in eine Zahl gewandelt werden kann. Stattdessen wird der Default-Wert zurueckgegeben.- Parameters:
name
- Name des Attributs.defaultValue
- DefaultWert, wenn das Attribut nicht existiert.- Returns:
- der Wert des Attributs.
-
getString
public java.lang.String getString(java.lang.String name, java.lang.String defaultValue)
Liefert den Wert des Attribute. Wird das Attribut nicht gefunden oder hat keinen Wert, wird defaultValue zurueckgegeben.- Parameters:
name
- Name des Attributs.defaultValue
- DefaultWert, wenn das Attribut nicht existiert.- Returns:
- der Wert des Attributs.
-
getList
public java.lang.String[] getList(java.lang.String name, java.lang.String[] defaultValues)
Liefert ein Array von Werten. Wird das Attribut nicht gefunden oder hat keinen Wert, wird defaultValue zurueckgegeben. Es koennen maximal 256 Werte gelesen oder gespeichert werden.- Parameters:
name
- Name des Attributs.defaultValues
- DefaultWert, wenn das Attribut nicht existiert.- Returns:
- Werte des Attributs in Form eines String-Arrays.
-
setAttribute
public void setAttribute(java.lang.String name, boolean value)
Speichert einen boolschen Wert.- Parameters:
name
- Name des Attributs.value
- Wert des Attributs.
-
setAttribute
public void setAttribute(java.lang.String name, int value)
Speichert einen Integer-Wert.- Parameters:
name
- Name des Attributs.value
- Wert des Attributs.
-
setAttribute
public void setAttribute(java.lang.String name, double value)
Speichert einen Double-Wert.- Parameters:
name
- Name des Attributs.value
- Wert des Attributs.
-
setAttribute
public void setAttribute(java.lang.String name, long value)
Speichert einen Long-Wert.- Parameters:
name
- Name des Attributs.value
- Wert des Attributs.
-
setAttribute
public void setAttribute(java.lang.String name, java.lang.String value)
Speichert das Attributmit dem zugehoerigen Wert . Wenn ein gleichnamiges Attribut bereits existiert, wird es ueberschrieben. Ist der Wert des Attributes null
, wird es entfernt.- Parameters:
name
- Name des Attributs.value
- Wert des Attributs.
-
setAttribute
public void setAttribute(java.lang.String name, java.lang.String[] values)
Speichert das Attributmit der zugehoerigen Liste von Werten . Wenn ein gleichnamiges Attribut bereits existiert, werden dessen Werte ueberschrieben. Ist der Wert des Attributes null
, wird es entfernt. Von dem Array werden die ersten maximal 256 Elemente gespeichert. Alle darueber hinausgehenden Werte, werden ignoriert.- Parameters:
name
- Name des Attributs.values
- Werte des Attributs.
-
-