Interface ConfigurationFileManager
-
- All Known Implementing Classes:
ConfigFileManager
public interface ConfigurationFileManager
Dieses Interface stellt eine Verwaltung für alle Konfigurationsdateien dar und ermöglicht den Zugriff auf diese. Die beschriebenen get-Methoden beziehen sich immer auf alle Konfigurationsdateien, die sich im Zugriff der Verwaltung befinden. Aus diesem Grund speichert die Verwaltung die aktiven Objekte zentral in einer Datenstruktur und deligiert nötige Zugriffe auf die Datei an das jeweilige ConfigurationAreaFile-Objekt.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ConfigurationAreaFile
addAreaFile(java.lang.String configurationAreaPid, java.io.File configurationAreaDir, short activeVersion, java.util.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(java.lang.String configurationAreaPid, java.io.File configurationAreaDir)
Diese Methode erstellt zu einem neuen Konfigurationsbereich eine Konfigurationsdatei und fügt den Bereich mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
den bestehenden Bereichen hinzu.SystemObjectInformationInterface
getActiveObject(java.lang.String pid)
Diese Methode gibt ein Objekt zurück, das derzeit in einem Konfigurationsbereich aktiv ist.ConfigurationAreaFile
getAreaFile(java.lang.String configurationAreaPid)
Diese Methode gibt ein Objekt zurück, das den Konfigurationsbereich darstellt.ConfigurationAreaFile[]
getConfigurationAreas()
Diese Methode gibt alle Konfigurationsbereiche zurück, die mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
eingefügt wurden.SystemObjectInformationInterface[]
getNewObjects(java.lang.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.SystemObjectInformationInterface[]
getObjects(long... ids)
Gibt anhand der IDs mehrere Objekte zurück.java.util.List<DynamicObjectInfo>
getObjects(short simulationVariant)
Diese Methode gibt alle dynamischen Objekte zurück, die zu einer Simulationsvariante gehören.SystemObjectInformationInterface
getSimulationObject(java.lang.String pid, short simulationVariant)
Gibt ein simulationsspezifisches Objekt anhand der Pid zurück.void
saveConfigurationAreaFiles()
Diese Methode sichert alle Konfigurationsbereiche, die mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
übergeben wurden.
-
-
-
Method Detail
-
createAreaFile
ConfigurationAreaFile createAreaFile(java.lang.String configurationAreaPid, java.io.File configurationAreaDir) throws java.lang.IllegalArgumentException, java.io.IOException, de.bsvrz.sys.funclib.dataSerializer.NoSuchVersionException
Diese Methode erstellt zu einem neuen Konfigurationsbereich eine Konfigurationsdatei und fügt den Bereich mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
den bestehenden Bereichen hinzu. Der neue Konfigurationsbereich erhält den Zustand inaktiv. Soll er von der Konfiguration genutzt werden können, so muss er aktiviert werden.- Parameters:
configurationAreaPid
- die Pid des neuen KonfigurationsbereichsconfigurationAreaDir
- das Verzeichnis, in dem die Konfigurationsdatei angelegt werden soll- Returns:
- der neue Konfigurationsbereich
- Throws:
java.lang.IllegalArgumentException
- Falls die Argumente ungültig sind.java.io.IOException
- Falls Fehler im Zusammenhang mit der Datei des Konfigurationsbereichs auftreten.de.bsvrz.sys.funclib.dataSerializer.NoSuchVersionException
-
addAreaFile
ConfigurationAreaFile addAreaFile(java.lang.String configurationAreaPid, java.io.File configurationAreaDir, short activeVersion, java.util.List<VersionInfo> localVersionTimes) throws java.lang.IllegalArgumentException, java.io.IOException, de.bsvrz.sys.funclib.dataSerializer.NoSuchVersionException
Der aktuellen Konfiguration wird der angegebene Konfigurationsbereich hinzugefügt. Gibt es bereits einen Konfigurationsbereich mit der angegebenen Pid, wird eine Fehlermeldung erzeugt.- Parameters:
configurationAreaPid
- die Pid des KonfigurationsbereichsconfigurationAreaDir
- Verzeichnis, in dem die Konfigurationsdatei gespeichert wurdeactiveVersion
- die aktuelle Version des KonfigurationsbereichslocalVersionTimes
- Diese Liste speichert zu jeder Version, die jemals aktiviert wurde, den Zeitpunkt an dem die Version aktiviert wurde. Die Zeitpunkte beziehen sich auf die Zeit, an dem sie auf der Konfiguration, die diese Methode aufruft, aktiviert wurden.- Returns:
- der hinzugefügte Konfigurationsbereich
- Throws:
java.lang.IllegalArgumentException
- Falls der Konfigurationsbereich mit der Pid bereits zur Konfiguration hinzugefügt wurde.java.lang.IllegalStateException
- Die Datei, die den Konfigurationsbereich enthält, existiert nicht.java.io.IOException
de.bsvrz.sys.funclib.dataSerializer.NoSuchVersionException
-
getAreaFile
ConfigurationAreaFile getAreaFile(java.lang.String configurationAreaPid)
Diese Methode gibt ein Objekt zurück, das den Konfigurationsbereich darstellt.- Parameters:
configurationAreaPid
- Pid des Konfigurationsbereichs- Returns:
- Objekt, mit dem auf den Konfigurationsbereich zugegriffen werden kann. Ist kein Objekt vorhanden, wird
null
zurückgegeben.
-
getObject
SystemObjectInformationInterface getObject(long id)
Gibt ein Objekt zurück, das über die Id identifiziert wird. Es werden alle Konfigurationsbereiche betrachtet, die mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
hinzugefügt wurden.- Parameters:
id
- Id des Objekts- Returns:
- Objekt, das angefordert wurde oder
null
falls kein Objekt gefunden werden konnte
-
getObjects
SystemObjectInformationInterface[] getObjects(long... ids)
Gibt anhand der IDs mehrere Objekte zurück. Es werden alle Konfigurationsbereiche betrachtet, die mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
hinzugefügt wurden. Hinweis: Diese Methode ist sehr wahrscheinlich schneller, als ein wiederholter Aufruf vongetObject(long)
.- Parameters:
ids
- Ids der Objekte- Returns:
- Array mit Objekten in der gleichen Reihenfolge wie übergeben. Falls ein Objekt nicht bestimmt werden konnte, enthält das Array an dem
entsprechenden Index
null
.
-
getActiveObject
SystemObjectInformationInterface getActiveObject(java.lang.String pid)
Diese Methode gibt ein Objekt zurück, das derzeit in einem Konfigurationsbereich aktiv ist. Es werden alle Konfigurationsbreiche geprüft, die mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
hinzugefügt wurden. Objekte, die nur in Simulationen gültig sind werden hier nicht zurückgegeben, stattdessen istgetSimulationObject(String, short)
zu benutzen.- Parameters:
pid
- Pid des Objekts, das gesucht werden soll- Returns:
- Objekt, dessen Pid übergeben wurde oder
null
falls kein Objekt existiert
-
getSimulationObject
SystemObjectInformationInterface getSimulationObject(java.lang.String pid, short simulationVariant)
Gibt ein simulationsspezifisches Objekt anhand der Pid zurück. Es werden nur Objekte zurückgegeben, die in einer Simulation erzeugt wurden und damit auch nur in dieser Simulation gültig sind.- Parameters:
pid
- PidsimulationVariant
- Simulationsvariante- Returns:
- Objekt, dessen Pid übergeben wurde oder
null
falls kein Objekt existiert
-
getNewObjects
SystemObjectInformationInterface[] getNewObjects(java.lang.String pid) throws java.lang.IllegalArgumentException
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 mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
hinzugefügt wurden.- 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
- Throws:
java.lang.IllegalArgumentException
-
getConfigurationAreas
ConfigurationAreaFile[] getConfigurationAreas()
Diese Methode gibt alle Konfigurationsbereiche zurück, die mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
eingefügt wurden.- Returns:
- s.o.
-
getObjects
java.util.List<DynamicObjectInfo> getObjects(short simulationVariant) throws java.lang.IllegalArgumentException
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.- 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:
java.lang.IllegalStateException
- Der Wert der Simulationsvariante ist nicht 1...999java.lang.IllegalArgumentException
-
saveConfigurationAreaFiles
void saveConfigurationAreaFiles() throws java.io.IOException
Diese Methode sichert alle Konfigurationsbereiche, die mitaddAreaFile(java.lang.String, java.io.File, short, java.util.List<de.bsvrz.puk.config.main.managementfile.VersionInfo>)
übergeben wurden. In den einzelnen Konfigurationsbereichen werden alle Änderungen, die an Objekten eines Konfigurationsbereichs vorgenommen wurden, persistent in die dafür vorgesehene Datei gespeichert.- Throws:
java.io.IOException
- Es ist beim speichern der Versorgungsdateien zu einem Fehler gekommen. Es wurde trotz des Fehlers bei jeder DateiConfigurationAreaFile.flush()
aufgerufen. Die zuletzt aufgetretene IOException wird zurückgegeben.
-
close
void close()
Diese Methode wird aufgerufen, wenn ein System heruntegefahren werden soll. Sie speichert alle Konfigurationsbereiche (siehesaveConfigurationAreaFiles()
und stellt einen Zustand her in dem das System wieder gestartet werden kann.
-
-