de.bsvrz.puk.config.main.managementfile
Class ManagementFile

java.lang.Object
  extended by de.bsvrz.puk.config.main.managementfile.ManagementFile
All Implemented Interfaces:
ConfigurationManagementFile

public class ManagementFile
extends Object
implements ConfigurationManagementFile

Diese Klasse speichert die Verwaltungsdaten der Konfiguration in einer XML-Datei ab. (siehe auch die Technischen Anforderungen des Segments Parametrierung und Konfiguration)

Author:
Kappich Systemberatung

Nested Class Summary
private  class ManagementFile.ConfigAreaManagementInfo
          Diese Implementierung ist für die Konfigurationsbereiche der Verwaltungsdaten zuständig.
private  class ManagementFile.ManagementEntityResolver
          Implementierung eines EntityResolvers, der Referenzen auf den Public-Identifier "-//K2S//DTD Verwaltung//DE" ersetzt durch die verwaltungsdaten.dtd Resource-Datei in diesem Package.
private  class ManagementFile.VersionInformation
          Repräsentiert einen Versionseintrag in den Verwaltungsdaten zu einem Konfigurationsbereich.
 
Field Summary
private  List<ConfigurationAreaManagementInfo> _areaManagementInfos
          Speichert die Einträge zu den Verwaltungsdaten in dieser Liste.
private  DateFormat _dateFormat
          Das Format des Zeitstempels für die Versionsaktivierung.
private static Debug _debug
          DebugLogger für Debug-Ausgaben
private  FileLock _managementFileLock
           
private  File _objectSetBaseDirectory
           
private  URI _uriBase
          Speichert die Basis der Verzeichnisse für die Konfigurationsbereiche.
private  Document _xmlDocument
          Repräsentiert die vollständige XML-Datei.
private  File _xmlFile
          Datei, wo die Verwaltungsdaten abgespeichert werden sollen.
 
Constructor Summary
ManagementFile(File xmlFile)
          Der Konstruktor lädt die angegebene XML-Datei mit den Verwaltungsdaten der Konfiguration, validiert gegen die dazugehörende DTD bzw.
 
Method Summary
 ConfigurationAreaManagementInfo addConfigurationAreaManagementInfo(String pid)
          Fügt einen neuen Eintrag eines Konfigurationsbereichs ans Ende der Verwaltungsdatei ein.
 void close()
          Diese Methode wird aufgerufen, wenn das System heruntergefahren wird.
 List<ConfigurationAreaManagementInfo> getAllConfigurationAreaManagementInfos()
          Gibt alle Einträge über Konfigurationsbereiche der Konfiguration in der zu verwendenden Reihenfolge aus den Verwaltungsdaten zurück.
private  List<ConfigurationAreaManagementInfo> getAllManagementInfos()
          Interne Methode, die die Verwaltungseinträge zu den Konfigurationsbereichen einlädt und gesammelt in einer Liste zurückgibt.
 ConfigurationAreaManagementInfo getConfigurationAreaManagementInfo(String configurationAreaPid)
          Gibt einen Eintrag aus den Verwaltungsdaten zu der angegebenen Pid eines Konfigurationsbereichs zurück.
 String getConfigurationAuthority()
          Gibt die Pid des Konfigurationsverantwortlichen der Konfiguration zurück.
 File getObjectSetDirectory()
          Bestimmt das Verzeichnis in dem die Dateien mit den Elementzugehörigkeiten von dynamischen Mengen gespeichert werden sollen.
 void save()
          Speichert die Verwaltungsdaten ab.
private  void save(OutputStream outputStream)
          Speichert die Verwaltungsdaten im angegebenen Datenstrom ab.
 void setConfigurationAuthority(String pid)
          Speichert die Pid des Konfigurationsverantwortlichen der Konfiguration ab.
 String toString()
          String-Repräsentation (Verzeichnis und Dateiname der Verwaltungsdatei) dieses Objekts.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_debug

private static final Debug _debug
DebugLogger für Debug-Ausgaben


_xmlDocument

private final Document _xmlDocument
Repräsentiert die vollständige XML-Datei.


_xmlFile

private final File _xmlFile
Datei, wo die Verwaltungsdaten abgespeichert werden sollen.


_areaManagementInfos

private final List<ConfigurationAreaManagementInfo> _areaManagementInfos
Speichert die Einträge zu den Verwaltungsdaten in dieser Liste.


_dateFormat

private DateFormat _dateFormat
Das Format des Zeitstempels für die Versionsaktivierung.


_uriBase

private URI _uriBase
Speichert die Basis der Verzeichnisse für die Konfigurationsbereiche.


_managementFileLock

private final FileLock _managementFileLock

_objectSetBaseDirectory

private File _objectSetBaseDirectory
Constructor Detail

ManagementFile

public ManagementFile(File xmlFile)
Der Konstruktor lädt die angegebene XML-Datei mit den Verwaltungsdaten der Konfiguration, validiert gegen die dazugehörende DTD bzw. erzeugt eine neue Datei.

Parameters:
xmlFile - die Verwaltungsdatei
Method Detail

getAllManagementInfos

private List<ConfigurationAreaManagementInfo> getAllManagementInfos()
Interne Methode, die die Verwaltungseinträge zu den Konfigurationsbereichen einlädt und gesammelt in einer Liste zurückgibt.

Returns:
eine Liste mit den Verwaltungseinträgen der Konfigurationsbereiche

getConfigurationAuthority

public String getConfigurationAuthority()
Gibt die Pid des Konfigurationsverantwortlichen der Konfiguration zurück.

Specified by:
getConfigurationAuthority in interface ConfigurationManagementFile
Returns:
die Pid des Konfigurationsverantwortlichen der Konfiguration

setConfigurationAuthority

public void setConfigurationAuthority(String pid)
Speichert die Pid des Konfigurationsverantwortlichen der Konfiguration ab.

Specified by:
setConfigurationAuthority in interface ConfigurationManagementFile
Parameters:
pid - die Pid des Konfigurationsverantwortlichen

getAllConfigurationAreaManagementInfos

public List<ConfigurationAreaManagementInfo> getAllConfigurationAreaManagementInfos()
Gibt alle Einträge über Konfigurationsbereiche der Konfiguration in der zu verwendenden Reihenfolge aus den Verwaltungsdaten zurück.

Specified by:
getAllConfigurationAreaManagementInfos in interface ConfigurationManagementFile
Returns:
alle Konfigurationsbereiche der Konfiguration in der zu verwendenden Reihenfolge

getConfigurationAreaManagementInfo

public ConfigurationAreaManagementInfo getConfigurationAreaManagementInfo(String configurationAreaPid)
Gibt einen Eintrag aus den Verwaltungsdaten zu der angegebenen Pid eines Konfigurationsbereichs zurück. Falls es keinen Eintrag gibt wird null zurückgegeben.

Specified by:
getConfigurationAreaManagementInfo in interface ConfigurationManagementFile
Parameters:
configurationAreaPid - Pid eines Konfigurationsbereichs
Returns:
Eintrag aus den Verwaltungsdaten zu einem Konfigurationsbereich oder null, falls kein Eintrag vorhanden ist

addConfigurationAreaManagementInfo

public ConfigurationAreaManagementInfo addConfigurationAreaManagementInfo(String pid)
Fügt einen neuen Eintrag eines Konfigurationsbereichs ans Ende der Verwaltungsdatei ein.

Specified by:
addConfigurationAreaManagementInfo in interface ConfigurationManagementFile
Parameters:
pid - Pid des Konfigurationsbereichs, welcher zu den Verwaltungsdaten hinzugefügt werden soll
Returns:
der Eintrag in den Verwaltungsdaten zu einem Konfigurationsbereich

save

public void save()
          throws IOException
Speichert die Verwaltungsdaten ab.

Specified by:
save in interface ConfigurationManagementFile
Throws:
IOException

close

public void close()
           throws IOException
Description copied from interface: ConfigurationManagementFile
Diese Methode wird aufgerufen, wenn das System heruntergefahren wird. Es müssen alle Daten persistent gespeichert werden und es muss ein Zustand hergestellt werden, dass das System später erneut gestartet werden kann (Temporäre Dateien löschen, usw.).

Specified by:
close in interface ConfigurationManagementFile
Throws:
IOException

getObjectSetDirectory

public File getObjectSetDirectory()
Description copied from interface: ConfigurationManagementFile
Bestimmt das Verzeichnis in dem die Dateien mit den Elementzugehörigkeiten von dynamischen Mengen gespeichert werden sollen. Falls das Verzeichnis noch nich existiert, wird es erzeugt.

Specified by:
getObjectSetDirectory in interface ConfigurationManagementFile
Returns:
Verzeichnis in dem die Dateien mit den Elementzugehörigkeiten von dynamischen Mengen gespeichert werden sollen.

toString

public String toString()
String-Repräsentation (Verzeichnis und Dateiname der Verwaltungsdatei) dieses Objekts.

Overrides:
toString in class Object
Returns:
String-Repräsentation (Verzeichnis und Dateiname der Verwaltungsdatei) dieses Objekts.

save

private void save(OutputStream outputStream)
           throws IOException
Speichert die Verwaltungsdaten im angegebenen Datenstrom ab.

Parameters:
outputStream - der Stream, in dem die Verwaltungsdaten abgespeichert werden sollen
Throws:
IOException - Falls ein Fehler beim Speichern der Verwaltungsdaten aufgetreten ist.