de.bsvrz.puk.config.configFile.fileaccess
Class ConfigFileManager

java.lang.Object
  extended by de.bsvrz.puk.config.configFile.fileaccess.ConfigFileManager
All Implemented Interfaces:
ConfigurationFileManager

public class ConfigFileManager
extends Object
implements ConfigurationFileManager

Diese Methode stellt Konfigurationsbereiche zur Verfügung und verwaltet den Zugriff auf diese. Der Zugriff bezieht sich dabei auf die Dateien selber (Anlegen, Daten speichern, usw.), aber auch auf die dynamischen Objekte/Konfigurationsobjekte der einzelnen Bereiche.

Author:
Kappich+Kniß Systemberatung Aachen (K2S), Achim Wullenkord (AW)

Constructor Summary
ConfigFileManager()
           
 
Method Summary
 ConfigurationAreaFile addAreaFile(String configurationAreaPid, File configurationAreaDir, short activeVersion, List<VersionInfo> localVersionTimes)
          Der aktuellen Konfiguration wird der angegebene Konfigurationsbereich hinzugefügt.
 void close()
          Diese Methode wird aufgerufen, wenn ein System heruntegefahren werden soll.
 ConfigurationAreaFile createAreaFile(String configurationAreaPid, File configurationAreaDir)
          Diese Methode erstellt zu einem neuen Konfigurationsbereich eine Konfigurationsdatei.
 SystemObjectInformationInterface getActiveObject(long id)
           
 SystemObjectInformationInterface getActiveObject(String pid)
          Diese Methode gibt ein Objekt zurück, das derzeit in einem Konfigurationsbereich aktiv ist.
 ConfigurationAreaFile getAreaFile(String configurationAreaPid)
          Diese Methode gibt ein Objekt zurück, das den Konfigurationsbereich darstellt.
 ConfigurationAreaFile[] getConfigurationAreas()
          Diese Methode gibt alle Konfigurationsbereiche zurück, die mit ConfigurationFileManager.addAreaFile(java.lang.String, java.io.File, short, java.util.List) eingefügt wurden.
 SystemObjectInformationInterface[] getNewObjects(String pid)
          Diese Methode gibt alle Objekte zurück, die derzeit in einem Konfigurationsbereich weder aktiv noch als ungültig markiert sind.
 SystemObjectInformationInterface getObject(long id)
          Gibt ein Objekt zurück, das über die Id identifiziert wird.
 List<DynamicObjectInfo> getObjects(short simulationVariant)
          Diese Methode gibt alle dynamischen Objekte zurück, die zu einer Simulationsvariante gehören.
 SystemObjectInformationInterface getOldObject(long id)
           
 SystemObjectInformationInterface[] getOldObjects(String pid, long startTime, long endTime)
          Diese Methode gibt alle Objekte zurück, die in einem Konfigurationsbereich als ungültig markiert sind und die im angegebnen Zeitbereich ungültig geworden sind.
 void saveConfigurationAreaFiles()
          Methode, die alle Konfigurationsbreiche speichert.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConfigFileManager

public ConfigFileManager()
Method Detail

createAreaFile

public ConfigurationAreaFile createAreaFile(String configurationAreaPid,
                                            File configurationAreaDir)
                                     throws IllegalArgumentException,
                                            IOException,
                                            NoSuchVersionException
Diese Methode erstellt zu einem neuen Konfigurationsbereich eine Konfigurationsdatei. Der neue Konfigurationsbereich erhält den Zustand inaktiv. Soll er von der Konfiguration genutzt werden können, so muss er aktiviert werden.

Specified by:
createAreaFile in interface ConfigurationFileManager
Parameters:
configurationAreaPid - die Pid des neuen Konfigurationsbereichs
configurationAreaDir - das Verzeichnis, in dem die Konfigurationsdatei angelegt werden soll
Returns:
der neue Konfigurationsbereich
Throws:
IllegalArgumentException - Falls die Argumente ungültig sind.
IOException - Falls Fehler im Zusammenhang mit der Datei des Konfigurationsbereichs auftreten.
NoSuchVersionException - TBD

addAreaFile

public ConfigurationAreaFile addAreaFile(String configurationAreaPid,
                                         File configurationAreaDir,
                                         short activeVersion,
                                         List<VersionInfo> localVersionTimes)
                                  throws IllegalArgumentException,
                                         IOException,
                                         NoSuchVersionException
Der aktuellen Konfiguration wird der angegebene Konfigurationsbereich hinzugefügt. Gibt es bereits einen Konfigurationsbereich mit der angegebenen Pid, wird eine Fehlermeldung erzeugt.

Specified by:
addAreaFile in interface ConfigurationFileManager
Parameters:
configurationAreaPid - die Pid des Konfigurationsbereichs
configurationAreaDir - das Verzeichnis, in dem die Konfigurationsdatei gespeichert wurde. Diese Verzeichnis wird benutzt um den Bereich zu laden.
activeVersion - die aktuelle Version des Konfigurationsbereichs
localVersionTimes - Diese Liste speichert zu jeder Version, die jemals aktiviert wurde, den Zeitpunkt an dem die Version aktiviert wurde. Die Zeitpunkte beziehen sich auf den Zeit, an dem sie auf der Konfiguration, die diese Methode aufruft, aktiviert wurden.
Returns:
der hinzugefügte Konfigurationsbereich
Throws:
IllegalArgumentException - Falls der Konfigurationsbereich mit der Pid bereits zur Konfiguration hinzugefügt wurde.
IllegalStateException - Datei existiert nicht
IOException - TBD
NoSuchVersionException - TBD

getAreaFile

public ConfigurationAreaFile getAreaFile(String configurationAreaPid)
Description copied from interface: ConfigurationFileManager
Diese Methode gibt ein Objekt zurück, das den Konfigurationsbereich darstellt.

Specified by:
getAreaFile in interface ConfigurationFileManager
Parameters:
configurationAreaPid - Pid des Konfigurationsbereichs
Returns:
Objekt, mit dem auf den Konfigurationsbereich zugegriffen werden kann. Ist kein Objekt vorhanden, wird null zurückgegeben.

getObject

public SystemObjectInformationInterface getObject(long id)
Description copied from interface: ConfigurationFileManager
Gibt ein Objekt zurück, das über die Id identifiziert wird. Es werden alle Konfigurationsbereiche betrachtet, die mit ConfigurationFileManager.addAreaFile(java.lang.String, java.io.File, short, java.util.List) hinzugefügt wurden.

Specified by:
getObject in interface ConfigurationFileManager
Parameters:
id - Id des Objekts
Returns:
Objekt, das angefordert wurde oder null falls kein Objekt gefunden werden konnte

getActiveObject

public SystemObjectInformationInterface getActiveObject(long id)

getActiveObject

public SystemObjectInformationInterface getActiveObject(String pid)
Description copied from interface: ConfigurationFileManager
Diese Methode gibt ein Objekt zurück, das derzeit in einem Konfigurationsbereich aktiv ist. Es werden alle Konfigurationsbreiche geprüft, die mit ConfigurationFileManager.addAreaFile(java.lang.String, java.io.File, short, java.util.List) hinzugefügt wurden.

Specified by:
getActiveObject in interface ConfigurationFileManager
Parameters:
pid - Pid des Objekts, das gesucht werden soll
Returns:
Objekt, dessen Pid übergeben wurde oder null falls kein Objekt existiert

getNewObjects

public SystemObjectInformationInterface[] getNewObjects(String pid)
Description copied from interface: ConfigurationFileManager
Diese Methode gibt alle Objekte zurück, die derzeit in einem Konfigurationsbereich weder aktiv noch als ungültig markiert sind. Es werden alle Konfigurationsbereiche geprüft, die mit ConfigurationFileManager.addAreaFile(java.lang.String, java.io.File, short, java.util.List) hinzugefügt wurden.

Specified by:
getNewObjects in interface ConfigurationFileManager
Parameters:
pid - pid der gesuchten Objekte
Returns:
Alle Objekte, deren Pid mit der übergebenen Pid übereinstimmt. Konnte kein Objekt gefunden werden, wird eine leeres Array zurückgegeben

getOldObject

public SystemObjectInformationInterface getOldObject(long id)
Parameters:
id -
Returns:
Objekt oder null falls nicht vorhanden

getOldObjects

public SystemObjectInformationInterface[] getOldObjects(String pid,
                                                        long startTime,
                                                        long endTime)
Description copied from interface: ConfigurationFileManager
Diese Methode gibt alle Objekte zurück, die in einem Konfigurationsbereich als ungültig markiert sind und die im angegebnen Zeitbereich ungültig geworden sind. Es werden alle Konfigurationsbreiche geprüft, die mit ConfigurationFileManager.addAreaFile(java.lang.String, java.io.File, short, java.util.List) hinzugefügt wurden.

Specified by:
getOldObjects in interface ConfigurationFileManager
Parameters:
pid - pid des gesuchten Objekts
startTime - Startzeitpunkt des Bereichs
endTime - Endzeitpunkt des Bereichs
Returns:
die gesuchten Objekte

getConfigurationAreas

public ConfigurationAreaFile[] getConfigurationAreas()
Description copied from interface: ConfigurationFileManager
Diese Methode gibt alle Konfigurationsbereiche zurück, die mit ConfigurationFileManager.addAreaFile(java.lang.String, java.io.File, short, java.util.List) eingefügt wurden.

Specified by:
getConfigurationAreas in interface ConfigurationFileManager
Returns:
s.o.

getObjects

public List<DynamicObjectInfo> getObjects(short simulationVariant)
                                   throws IllegalArgumentException
Description copied from interface: ConfigurationFileManager
Diese Methode gibt alle dynamischen Objekte zurück, die zu einer Simulationsvariante gehören. Der Zustand der dynamischen Objekte (gültig/ungültig) wird dabei nicht berücksichtigt. Die Simulationsvariante muss dabei größer 0 sein.

Specified by:
getObjects in interface ConfigurationFileManager
Parameters:
simulationVariant - Simulationsvariante, für die alle dynamischen Objekte zurückgegeben werden sollen. (Wertebereich 1...999)
Returns:
Liste mit dynamischen Objekten. Sind keine Objekte vorhande, wird eine leere Liste zurückgegeben.
Throws:
IllegalArgumentException

saveConfigurationAreaFiles

public void saveConfigurationAreaFiles()
                                throws IOException
Methode, die alle Konfigurationsbreiche speichert. Der Aufruf der Methode ist blockierend und kehrt erst dann zurück, wenn alle Konfigurationsbereiche gespeichert sind.

Specified by:
saveConfigurationAreaFiles in interface ConfigurationFileManager
Throws:
IOException - Es ist beim speichern der Versorgungsdateien zu einem Fehler gekommen. Es wurde trotz des Fehlers bei jeder Datei ConfigurationAreaFile.flush() aufgerufen. Die zuletzt aufgetretene IOException wird zurückgegeben.

close

public void close()
Description copied from interface: ConfigurationFileManager
Diese Methode wird aufgerufen, wenn ein System heruntegefahren werden soll. Sie speichert alle Konfigurationsbereiche (siehe ConfigurationFileManager.saveConfigurationAreaFiles() und stellt einen Zustand her in dem das System wieder gestartet werden kann.

Specified by:
close in interface ConfigurationFileManager