Class ConfigAreaFile
- java.lang.Object
-
- de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile
-
- All Implemented Interfaces:
ConfigurationAreaFile
public class ConfigAreaFile extends java.lang.Object implements ConfigurationAreaFile
Diese Klasse stellt eine Konfigurationsbereichsdatei dar und speichert alle Objekte des Bereichs mit Historie.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classConfigAreaFile.OldBlockInformationsDiese Klasse speichert die Dateiposition eines Blocks, der Konfigurationsobjekte enthält, die ungültig sind und durch eine Reorganisation verschoben wurden und sich nicht mehr in der Mischobjektmenge befinden.-
Nested classes/interfaces inherited from interface de.bsvrz.puk.config.configFile.fileaccess.ConfigurationAreaFile
ConfigurationAreaFile.RestructureMode
-
-
Constructor Summary
Constructors Constructor Description ConfigAreaFile(java.io.File configAreaFile, short activeVersion, ConfigFileManager configFileManager, java.util.List<VersionInfo> localActivatedVersionTimes)Dieser Konstruktor wird benutzt, wenn eine Datei für einen Konfigurationsbereich bereits existiert.ConfigAreaFile(java.io.File configAreaFile, java.lang.String pid, short activeVersion, int serializerVersion, ConfigFileManager configFileManager)Erzeugt eine Datei, die einen Konfigurationsbereich abbildet.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddToIndizes(java.util.List<de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile.SortObject> idIndex, java.util.Map<java.lang.Integer,de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile.SortObjectPid> pidIndex, BinaryObject objectInformation, long filePosition)voidaddToIndizes(java.util.List<de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile.SortObject> idIndex, java.util.Map<java.lang.Integer,de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile.SortObjectPid> pidIndex, SystemObjectInformationInterface objectInformation, long filePosition)voidclose()Diese Methode wird aufgerufen, wenn das System heruntergefahren soll.voidcreateBackupFile(java.io.File targetDirectory)Sichert die Datei in ein angegebenes ZielverzeichnisConfigurationObjectInfocreateConfigurationObject(long objectID, long typeID, java.lang.String pid, java.lang.String name)Diese Methode erzeugt ein Konfigurationsobjekt.DynamicObjectInfocreateDynamicObject(long objectID, long typeID, java.lang.String pid, short simulationVariant, java.lang.String name, de.bsvrz.dav.daf.main.config.DynamicObjectType.PersistenceMode persistenceMode)Diese Methode erzeugt ein dynamisches Objekt, das sofort gültig ist.voiddeleteDynamicObjectsPermanently()Löscht die für das Löschen vorgemerkten dynamischen Objekte vollständig und permanent.voidflush()Diese Methode wird aufgerufen, wenn alle modifizierten Objekte des Konfigurationsbereichs persistent gespeichert werden sollen.voidforEach(java.util.function.Consumer<? super SystemObjectInformationInterface> consumer)Iteriert über alle Objekte in diesem Bereich.voidforEachMixedObject(java.util.function.Consumer<? super SystemObjectInformationInterface> consumer)Iteriert über alle Objekte in der Mischmenge in diesem Bereich.voidforEachOldConfigurationObject(java.util.function.Consumer<? super ConfigurationObjectInfo> consumer)Iteriert über alle Konfigurationsobjekte in den NGA-Blöcken in diesem Bereich.voidforEachOldDynamicObject(java.util.function.Consumer<? super DynamicObjectInfo> consumer)Iteriert über alle dynamischen Objekte im NGDyn-Block in diesem Bereich.shortgetActiveVersion(long startTime, ConfigurationAreaTime kindOfTime)Gibt zu einem Zeitpunkt die Version zurück, die aktiv war.SystemObjectInformationInterface[]getActualObjects(long typeId)Gibt alle aktuellen Objekte zurück, die als TypeId die übergebene TypeId besitzen.SystemObjectInformationInterface[]getActualObjects(java.util.Collection<java.lang.Long> typeIds)Gibt alle aktuellen Objekte zurück, die als TypeId einen der übergebenen TypeIds besitzen.longgetBackupProgress()java.lang.StringgetConfigAreaPid()Gibt die Pid des Konfigurationsbereichs zurück.ConfigurationObjectInfogetConfigurationAreaInfo()Methode, die das Objekt, das den Konfigurationsbereich darstellt, zurück gibt.SystemObjectInformationInterface[]getCurrentObjects()Diese Methode gibt alle dynamischen Objekte und Konfigurationsobjekte zurück, die in der aktuellen Version aktuell sind.longgetFileLength()longgetGreatestId()Diese Methode gibt die größte vergebene laufende Nummer einer Id des Konfigurationsbereichs zurück.longgetHeaderEnd()java.util.Collection<java.lang.Object>getMixedObjectSetObjects()Lädt alle "aktuellen" und in "Zukunft aktuellen" Objekte.SystemObjectInformationInterface[]getNewObjects()Diese Methode gibt alle Konfigurationsobjekte zurück, die in einer zukünftigen Version aktuell werden.shortgetNextActiveVersion()Liefert die Version, ab der neu erstellte Konfigurationsobjekte gültig werden.SystemObjectInformationInterface[]getObjects(long startTime, long endTime, ConfigurationAreaTime kindOfTime, de.bsvrz.dav.daf.main.config.TimeSpecificationType timeSpecificationType, java.util.Collection<java.lang.Long> typeIds)Diese Methode gibt alle dynamischen Objekte und Konfigurationsobjekte zurück, die innerhalb des angegebenen Zeitbereichs gültig waren und deren TypeId gleich einer der übergebenen TypeIdŽs ist.java.util.List<SystemObjectInformationInterface>getObjects(java.lang.String pid, long startTime, long endTime, ConfigurationAreaTime kindOfTime, short simulationVariant)Diese Methode gibt Objekte zurück, die in dem angegebenen Zeibereich gültig waren.SystemObjectInformationInterfacegetOldObject(long id)Diese Methode gibt ein Objekt zurück, das als ungültig markiert wurde.SystemObjectInformationInterface[]getOldObjects(java.util.SortedSet<java.lang.Long> ids)Diese Methode tut das gleiche wieConfigurationAreaFile.getOldObject(long), aber für mehrere IDs gleichzeitig.static longgetRelativeFilePositionForInvalidConfigObject(long headerEnd, long absoluteFilePosition)static longgetRelativeFilePositionForInvalidDynamicObject(long dynamicAreaOffset, long absoluteFilePosition)intgetSerializerVersion()Alle Daten, die als Byte-Array gespeichert werden müssen, werden mit einem SerializerSerializererstellt.longgetStartIdIndex()longgetStartMixedSet()longgetStartOldDynamicObjects()longgetStartPidHashCodeIndex()booleaninitialVersionRestructure()Diese Methode wird aufgerufen, wenn der Konfigurationsverantwortliche eine neue Version aktiviert.voidmarkObjectsForDeletion(java.util.List<java.lang.Long> objectsToDelete)Markiert eine Menge von dynamischen Objekten als ausreichend als und nicht mehr Referenziert, sodass diese ggf. beim nächsten Neustart endgültig gelöscht werden können.booleanreferenceAllowed(SystemObjectInformationInterface systemObjectInfo)Prüft, ob ein angegebenenes Objekt von anderen Objekten referenzert werden darfbooleanrestructure()Deprecated.Bitte Mode-Parameter übergeben um die Art der Restrukturierung anzugeben.voidrestructure(ConfigurationAreaFile.RestructureMode mode)Diese Methode reorganisiert eine Konfigurationsbereichsdatei.voidsetNextActiveVersion(short nextActiveVersion)Legt die Version fest mit der Konfigurationsobjekte, die mitConfigurationAreaFile.createConfigurationObject(long, long, java.lang.String, java.lang.String)erzeugt werden, gültig werden.voidswapFiles(de.bsvrz.puk.config.configFile.fileaccess.RestructureInfo restructureInfo, java.io.File configAreaNewName)java.lang.StringtoString()voidupdateHeaderPositions(de.bsvrz.puk.config.configFile.fileaccess.HeaderInfo headerInfo)voidwriteInvalidTime(DynamicObjectInformation object)Wird aufgerufen, wenn ein dynamisches Objekt ungültig wird.
-
-
-
Constructor Detail
-
ConfigAreaFile
public ConfigAreaFile(java.io.File configAreaFile, short activeVersion, ConfigFileManager configFileManager, java.util.List<VersionInfo> localActivatedVersionTimes) throws java.io.IOExceptionDieser Konstruktor wird benutzt, wenn eine Datei für einen Konfigurationsbereich bereits existiert.- Parameters:
configAreaFile- Datei, in der der Konfigurationsberich gespeichert istactiveVersion- aktive Version mit der der Konfigurationsbereich gestartet wirdconfigFileManager- Objekt, das alle Konfigurationsbereiche verwaltetlocalActivatedVersionTimes- Liste, die zu jeder Version, die lokal aktiviert wurde, den Zeitpunkt enthält, wann die Version aktiviert wurde- Throws:
java.io.IOException
-
ConfigAreaFile
public ConfigAreaFile(java.io.File configAreaFile, java.lang.String pid, short activeVersion, int serializerVersion, ConfigFileManager configFileManager) throws java.io.IOExceptionErzeugt eine Datei, die einen Konfigurationsbereich abbildet. Der Header wird erstellt, usw..- Parameters:
configAreaFile- Datei, in der die Objekte gespeichert werdenpid- Pid des KonfigurationsbereichsactiveVersion- aktuelle VersionserializerVersion- Version, mit der alle Daten in der Datei serialisiert werden müssen. Alle Daten, dieconfigFileManager-- Throws:
java.io.IOException
-
-
Method Detail
-
getRelativeFilePositionForInvalidConfigObject
public static long getRelativeFilePositionForInvalidConfigObject(long headerEnd, long absoluteFilePosition)
-
getRelativeFilePositionForInvalidDynamicObject
public static long getRelativeFilePositionForInvalidDynamicObject(long dynamicAreaOffset, long absoluteFilePosition)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getNextActiveVersion
public short getNextActiveVersion()
Description copied from interface:ConfigurationAreaFileLiefert die Version, ab der neu erstellte Konfigurationsobjekte gültig werden.- Specified by:
getNextActiveVersionin interfaceConfigurationAreaFile- Returns:
- Liefert eine Version, ab der neu erstellte Konfigurationsobjekte gültig werden.
-
setNextActiveVersion
public void setNextActiveVersion(short nextActiveVersion)
Description copied from interface:ConfigurationAreaFileLegt die Version fest mit der Konfigurationsobjekte, die mitConfigurationAreaFile.createConfigurationObject(long, long, java.lang.String, java.lang.String)erzeugt werden, gültig werden.- Specified by:
setNextActiveVersionin interfaceConfigurationAreaFile- Parameters:
nextActiveVersion- Version, mit der Konfigurationsobjekte gültig werden. Die erste Version, mit der ein Objekt gültig sein kann, ist die 1. Die Versionen sind positive Ganzzahlen, die fortlaufend nummeriert sind.
-
getConfigurationAreaInfo
public ConfigurationObjectInfo getConfigurationAreaInfo()
Methode, die das Objekt, das den Konfigurationsbereich darstellt, zurück gibt.- Specified by:
getConfigurationAreaInfoin interfaceConfigurationAreaFile- Returns:
- Objekt oder
null, wenn der Bereich gerade erzeugt wurde.
-
flush
public void flush() throws java.io.IOExceptionDescription copied from interface:ConfigurationAreaFileDiese Methode wird aufgerufen, wenn alle modifizierten Objekte des Konfigurationsbereichs persistent gespeichert werden sollen.- Specified by:
flushin interfaceConfigurationAreaFile- Throws:
java.io.IOException- Fehler beim Zugriff auf die Datei in der der Konfigurationsbereich gespeichert ist
-
createBackupFile
public void createBackupFile(java.io.File targetDirectory) throws java.io.IOExceptionSichert die Datei in ein angegebenes Zielverzeichnis- Parameters:
targetDirectory- Zielverzeichnis- Throws:
java.io.IOException- IO-Fehler
-
getBackupProgress
public long getBackupProgress()
-
getFileLength
public long getFileLength()
-
close
public void close() throws java.io.IOExceptionDescription copied from interface:ConfigurationAreaFileDiese Methode wird aufgerufen, wenn das System heruntergefahren soll. Es müssen alle Daten gespeichert werden (sieheConfigurationAreaFile.flush()und ein Zustand hergestellt werden, mit dem das System zu einem späteren Zeitpunkt wieder hochgefahren werden kann.- Specified by:
closein interfaceConfigurationAreaFile- Throws:
java.io.IOException- Fehler beim Zugriff auf die Datei in der der Konfigurationsbereich gespeichert ist
-
createDynamicObject
public DynamicObjectInfo createDynamicObject(long objectID, long typeID, java.lang.String pid, short simulationVariant, java.lang.String name, de.bsvrz.dav.daf.main.config.DynamicObjectType.PersistenceMode persistenceMode)
Description copied from interface:ConfigurationAreaFileDiese Methode erzeugt ein dynamisches Objekt, das sofort gültig ist.- Specified by:
createDynamicObjectin interfaceConfigurationAreaFile- Parameters:
objectID- ID des ObjektstypeID- Typ des Objekts, der Typ wird über die ID festgelegtpid- Pid des ObjektssimulationVariant- Simulationsvariante unter der das dynamische Objekt gültig istname- Name des Objekts,nullwird als "" interpretiertpersistenceMode- Soll das dynamische Objekte persistent gespeichert werden- Returns:
- Objekt, über das auf das dynamische Objekt zugegriffen werden kann
- See Also:
ConfigurationAreaFile.getGreatestId()
-
createConfigurationObject
public ConfigurationObjectInfo createConfigurationObject(long objectID, long typeID, java.lang.String pid, java.lang.String name)
Description copied from interface:ConfigurationAreaFileDiese Methode erzeugt ein Konfigurationsobjekt.- Specified by:
createConfigurationObjectin interfaceConfigurationAreaFile- Parameters:
objectID- ID des ObjektstypeID- Typ des Objekts, der Typ wird über die ID festgelegtpid- Pid des Objektsname- Name des Objekts,nullwird als "" interpretiert- Returns:
- Objekt, über das auf das Konfigurationsobjekt zugegriffen werden kann
- See Also:
ConfigurationAreaFile.getGreatestId()
-
getCurrentObjects
public SystemObjectInformationInterface[] getCurrentObjects()
Description copied from interface:ConfigurationAreaFileDiese Methode gibt alle dynamischen Objekte und Konfigurationsobjekte zurück, die in der aktuellen Version aktuell sind.- Specified by:
getCurrentObjectsin interfaceConfigurationAreaFile- Returns:
- s.o.
-
getActualObjects
public SystemObjectInformationInterface[] getActualObjects(long typeId)
Description copied from interface:ConfigurationAreaFileGibt alle aktuellen Objekte zurück, die als TypeId die übergebene TypeId besitzen.- Specified by:
getActualObjectsin interfaceConfigurationAreaFile- Parameters:
typeId- TypeId, die ein Objekt besitzen muss, damit es zurückgegeben wird- Returns:
- Objekte, deren TypeId gleich der übergebenen TypeId sind. Ist kein Objekt vorhanden, so wird ein leeres Array zurückgegeben.
-
getActualObjects
public SystemObjectInformationInterface[] getActualObjects(java.util.Collection<java.lang.Long> typeIds)
Description copied from interface:ConfigurationAreaFileGibt alle aktuellen Objekte zurück, die als TypeId einen der übergebenen TypeIds besitzen.- Specified by:
getActualObjectsin interfaceConfigurationAreaFile- Parameters:
typeIds- TypeIds, die ein Objekt besitzen muss, damit es zurückgegeben wird- Returns:
- Objekte, deren TypeId gleich einem der übergebenen TypeIds sind. Ist kein Objekt vorhanden, so wird ein leeres Array zurückgegeben.
-
getObjects
public SystemObjectInformationInterface[] getObjects(long startTime, long endTime, ConfigurationAreaTime kindOfTime, de.bsvrz.dav.daf.main.config.TimeSpecificationType timeSpecificationType, java.util.Collection<java.lang.Long> typeIds)
Description copied from interface:ConfigurationAreaFileDiese Methode gibt alle dynamischen Objekte und Konfigurationsobjekte zurück, die innerhalb des angegebenen Zeitbereichs gültig waren und deren TypeId gleich einer der übergebenen TypeIdŽs ist. Der ParametertimeSpecificationTypebestimmt, wann/wie lange ein Objekt gültig gewesen sein muss um in die Lösung aufgenommen zu werden.- Specified by:
getObjectsin interfaceConfigurationAreaFile- Parameters:
startTime- Zeitpunkt, ab der ein Objekt gültig sein muss, um zurückgegeben zu werdenendTime- Zeitpunkt, bis zu der Objekte zurückgegeben werdenkindOfTime- Ein Konfigurationsobjekt wird mit der Aktivierung einer Version gültig. Da der Konfigurationsverantwortliche die Version zu einem früheren Zeitpunkt aktiviert haben kann, als die lokale Konfiguration, legt dieser Parameter fest, welcher Zeitpunkt für ein Konfigurationsobjekt benutzt werden soll an dem es als "gültig" markiert wurde.timeSpecificationType- Gibt die Art und Weise an, wie der Zeitraum zu betrachten ist.typeIds- Liste von TypeIdŽs. Damit ein Objekt zurückgegeben wird, muss die TypeId des Objekts mit einer TypeId in der Liste übereinstimmen- Returns:
- Objekte, die in dem angegebene Zeitbereich zu einem Zeitpunkt gültig waren und deren TypeId mit einer geforderten TypeId übereinstimmt
-
getActiveVersion
public short getActiveVersion(long startTime, ConfigurationAreaTime kindOfTime)Gibt zu einem Zeitpunkt die Version zurück, die aktiv war.- Parameters:
startTime- Zeitpunkt, zu dem die Version aktiv gewesen sein musskindOfTime- Soll die Aktivierungszeit des Konfigurationsverantwortlichen oder die lokale Aktivierung zur Berechnung der Version benutzt werden- Returns:
- Version, die zu dem angegebenen Zeitpunkt aktiviert war. Der Wert -1 bedeutet, dass es keine aktive Version gibt, die zu dem geforderten Zeitpunkt aktiviert war
-
getNewObjects
public SystemObjectInformationInterface[] getNewObjects()
Description copied from interface:ConfigurationAreaFileDiese Methode gibt alle Konfigurationsobjekte zurück, die in einer zukünftigen Version aktuell werden.- Specified by:
getNewObjectsin interfaceConfigurationAreaFile- Returns:
- Konfigurationsobjekte, die zukünftig aktuell werden aber es in der aktuellen Version noch nicht sind.
-
forEach
public void forEach(java.util.function.Consumer<? super SystemObjectInformationInterface> consumer)
Iteriert über alle Objekte in diesem Bereich.- Specified by:
forEachin interfaceConfigurationAreaFile- Parameters:
consumer- Consumer, an den jedes gefundene Objekt übergeben wird
-
forEachOldConfigurationObject
public void forEachOldConfigurationObject(java.util.function.Consumer<? super ConfigurationObjectInfo> consumer)
Iteriert über alle Konfigurationsobjekte in den NGA-Blöcken in diesem Bereich.- Specified by:
forEachOldConfigurationObjectin interfaceConfigurationAreaFile- Parameters:
consumer- Consumer, an den jedes gefundene Objekt übergeben wird
-
forEachOldDynamicObject
public void forEachOldDynamicObject(java.util.function.Consumer<? super DynamicObjectInfo> consumer)
Iteriert über alle dynamischen Objekte im NGDyn-Block in diesem Bereich.- Specified by:
forEachOldDynamicObjectin interfaceConfigurationAreaFile- Parameters:
consumer- Java-8-Style Consumer, an den jedes gefundene Objekt übergeben wird
-
forEachMixedObject
public void forEachMixedObject(java.util.function.Consumer<? super SystemObjectInformationInterface> consumer)
Iteriert über alle Objekte in der Mischmenge in diesem Bereich.- Specified by:
forEachMixedObjectin interfaceConfigurationAreaFile- Parameters:
consumer- Java-8-Style Consumer, an den jedes gefundene Objekt übergeben wird
-
getMixedObjectSetObjects
public java.util.Collection<java.lang.Object> getMixedObjectSetObjects()
Lädt alle "aktuellen" und in "Zukunft aktuellen" Objekte. Objekte die ungültig sind, aber sich noch in der Mischobjektmenge befinden, werden nur Teilweise (ID, Pid-HashCode, Dateiposition) geladen.Soll der Bereich in einer anderen als der aktuellen Version geladen werden, dann müssen ebenfalls die nGa-Bereiche betrachtet werden.
- Returns:
- Collecetion, die alle Objekte der Mischmenge enthält (entweder ganz, oder nur als ID-Pid-Dateiposition Kombination) und Objekte aus den
entsprechende nGa-Bereichen (enthalten Sind Objekte der Typen
SystemObjectInformationInterfaceundConfigAreaFile.OldObject
-
getOldObject
public SystemObjectInformationInterface getOldObject(long id)
Description copied from interface:ConfigurationAreaFileDiese Methode gibt ein Objekt zurück, das als ungültig markiert wurde. Ist in diesem Konfigurationsbereich kein Objekt mit der Id vorhanden, wirdnullzurückgegeben.- Specified by:
getOldObjectin interfaceConfigurationAreaFile- Parameters:
id- Id des geforderten Objekts- Returns:
- Objekt, das als ungültig markiert wurde oder
null
-
getObjects
public java.util.List<SystemObjectInformationInterface> getObjects(java.lang.String pid, long startTime, long endTime, ConfigurationAreaTime kindOfTime, short simulationVariant)
Description copied from interface:ConfigurationAreaFileDiese Methode gibt Objekte zurück, die in dem angegebenen Zeibereich gültig waren.- Specified by:
getObjectsin interfaceConfigurationAreaFile- Parameters:
pid- Pid, über die die Objekte identifiziert werdenstartTime- Zeitpunkt, ab dem ein Objekt mit der angegebenen Pid gültig gewesen sein muss um zurückgegeben zu werden. War das Objekt vor dem angegebenen Zeitraum bereits gültig, so wird es ebenfalls zurückgegeben.endTime- Zeitpunkt, bis zu dem ein Objekt mit der angegebenen Pid gültig gewesen sein muss um zurückgegeben zu werden. Ist das Objekt über diesen Zeitraum hinweg gültig, so wird es ebenfalls zurückgegeben. Der Zeitpunkt darf nicht in der Zukunft liegen, der größt mögliche Zeitpunkt ist die aktuelle Zeit.kindOfTime- Legt fest, welcher Zeitpunkt bei einer aktivierten Version benutzt wird. Der Zeitpunkt der lokalen Aktivierung einer Version oder aber der Zeitpunkt der Aktivierung durch den Konfigurationsverantwortlichen.simulationVariant- Zusätzlich zu berücksichtigende Simulationsvariante (außer 0). Es wird nicht nach dieser Simulationsvariante gefilert, d. h. wenn der Aufrufer nur Objekte benötigt, die innerhalb einer speziellen Simulation gültig sind, dann muss er selbst die zurückgegebenen Objekte noch einmal selbst filtern und dabei auch die in der Simulationsstrecke definierten Typen beachten.- Returns:
- Alle Objekte, die über die Pid identifiziert werden und im gewünschten Zeitbereich gültig waren. Sind keine Objekte vorhanden, wird ein leeres Array zurückgegeben (Größe 0). Wenn eine Simulationsvariante außer 0 angegeben wurde, werden sowohl Objekte dieser Variante als auch nicht simulierte Objekte (SimVar = 0) zurückgegeben.
-
getSerializerVersion
public int getSerializerVersion()
Description copied from interface:ConfigurationAreaFileAlle Daten, die als Byte-Array gespeichert werden müssen, werden mit einem SerializerSerializererstellt. Die benutzte Version ist in der gesamten Datei identisch. Ein Versionswechsel innerhalb der Datei ohne die Konvertierung aller Daten auf die neue Version ist nicht gestattet.- Specified by:
getSerializerVersionin interfaceConfigurationAreaFile- Returns:
- Versionsnummer des Serialisierers mit dem alle Byte-Arrays erstellt wurden
-
initialVersionRestructure
public boolean initialVersionRestructure()
Diese Methode wird aufgerufen, wenn der Konfigurationsverantwortliche eine neue Version aktiviert. Der Aufruf bewirkt, dass die Datei falls erforderlich restrukturiert wird. Diese Methode muss druch den Konfigurationsverantwortlichen aufgerufen werden, wenn dieser die aktive Version wechselt.- Specified by:
initialVersionRestructurein interfaceConfigurationAreaFile- Returns:
- true = Die Reorganisation war erfolgreich oder nicht erforderlich; false = Die Reorganisation war nicht erfolgreich
- See Also:
restructure(de.bsvrz.puk.config.configFile.fileaccess.ConfigurationAreaFile.RestructureMode)
-
getGreatestId
public long getGreatestId()
Description copied from interface:ConfigurationAreaFileDiese Methode gibt die größte vergebene laufende Nummer einer Id des Konfigurationsbereichs zurück. Die laufende Nummer ist in den ersten 40 Bits der Id kodiert.- Specified by:
getGreatestIdin interfaceConfigurationAreaFile- Returns:
- Die größte vergebene laufende Nummer einer Id des Konfigurationsbereich oder 0 falls die Id noch unbekannt ist. Der Wert 0 wird zum Beispiel dann zurückgegeben, wenn der Konfigurationsbereich neu angelegt wurde und noch keine größte Id bekannt ist
-
restructure
public void restructure(ConfigurationAreaFile.RestructureMode mode) throws java.io.IOException
Description copied from interface:ConfigurationAreaFileDiese Methode reorganisiert eine Konfigurationsbereichsdatei. Die Mischmenge wird dabei, falls möglich, verkleinert und die als ungültig markierten Objekte werden in die entsprechenden Blöcke kopiert. Kommt es bei der Reorganisation zu einem Fehler, so wird der Zustand vor der Reorganisation wiederhergestellt. Alle Methoden, die einen Dateizugriff benötigen (flush, Objekt auf Invalid setzen, usw.) und während der Reorganisation aufgerufen werden, sind blockierend.Diese Methode darf nur durch den Konfigurationsverantwortlichen aufgerufen werden.
- Specified by:
restructurein interfaceConfigurationAreaFile- Parameters:
mode- Restrukturierungsart (sieheRestructureMode- Throws:
java.io.IOException- Falls ein Fehler bei der Restrukturierung auftrat. In diesem Fall bleibt der vorherige Zustand erhalten.
-
swapFiles
public void swapFiles(de.bsvrz.puk.config.configFile.fileaccess.RestructureInfo restructureInfo, java.io.File configAreaNewName) throws java.io.IOException- Throws:
java.io.IOException
-
addToIndizes
public void addToIndizes(java.util.List<de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile.SortObject> idIndex, java.util.Map<java.lang.Integer,de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile.SortObjectPid> pidIndex, BinaryObject objectInformation, long filePosition)
-
addToIndizes
public void addToIndizes(java.util.List<de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile.SortObject> idIndex, java.util.Map<java.lang.Integer,de.bsvrz.puk.config.configFile.fileaccess.ConfigAreaFile.SortObjectPid> pidIndex, SystemObjectInformationInterface objectInformation, long filePosition)
-
getConfigAreaPid
public java.lang.String getConfigAreaPid()
Gibt die Pid des Konfigurationsbereichs zurück.- Returns:
- Pid des Konfigurationsbereichs
-
markObjectsForDeletion
public void markObjectsForDeletion(java.util.List<java.lang.Long> objectsToDelete)
Description copied from interface:ConfigurationAreaFileMarkiert eine Menge von dynamischen Objekten als ausreichend als und nicht mehr Referenziert, sodass diese ggf. beim nächsten Neustart endgültig gelöscht werden können. Jedes dynamische Objekt muss mindestens zweimal durch diese Methode markiert werden (auch über einen Neustart hinweg) bevor es gelöscht wird, da das Objekt mit dem ersten Aufruf zuerst als nicht mehr referenzierbar markiert wird und dann beim zweiten Aufruf sichergestellt ist, dass das Objekt in Zukunft nicht mehr referenziert werden kann.- Specified by:
markObjectsForDeletionin interfaceConfigurationAreaFile- Parameters:
objectsToDelete- Menge mit zu löschenden dynamischen Objekten dieses Bereichs (Objekt-IDs)
-
deleteDynamicObjectsPermanently
public void deleteDynamicObjectsPermanently()
Löscht die für das Löschen vorgemerkten dynamischen Objekte vollständig und permanent. Die übergebenen Objekte sollten bereits einige Zeit gelöscht sein und sich im NgaDyn-Block befinden. Es sollte keine Referenzen auf diese Objekte geben.Da sich dadurch die Positionen von nicht-Gültigen Objekten in der Datei ändern können, können Objekte im Speicher durch diesen Vorgang unbrauchbar werden. Daher muss nach dem Aufruf dieser Methode das Datenmodell neu initialisiert werden oder alternativ die Methode zu einem Zeitpunkt aufgerufen werden, wenn noch keine alten Objekte im Speicher sind.
-
referenceAllowed
public boolean referenceAllowed(SystemObjectInformationInterface systemObjectInfo)
Description copied from interface:ConfigurationAreaFilePrüft, ob ein angegebenenes Objekt von anderen Objekten referenzert werden darf- Specified by:
referenceAllowedin interfaceConfigurationAreaFile- Parameters:
systemObjectInfo- Objekt-Info (Objekt sollte zum aktuellen Bereich gehören)- Returns:
- true, falls es referenziert werden darf (es bisher nicht als
zu Löschen markiertwurde, sonst false
-
getOldObjects
public SystemObjectInformationInterface[] getOldObjects(java.util.SortedSet<java.lang.Long> ids)
Description copied from interface:ConfigurationAreaFileDiese Methode tut das gleiche wieConfigurationAreaFile.getOldObject(long), aber für mehrere IDs gleichzeitig. Dadurch kann die Performance wesentlich gesteigert werden.Die optimierte Implementierung setzt voraus, dass die IDs bereits natürlich sortiert übergeben werden. Das wird von der Implementierung nicht überprüft!
- Specified by:
getOldObjectsin interfaceConfigurationAreaFile- Parameters:
ids- Objekt-IDs aufsteigend sortiert- Returns:
- Objekte in Anfragereihenfolge (kann null-Elemente enthalten)
-
getHeaderEnd
public long getHeaderEnd()
-
getStartOldDynamicObjects
public long getStartOldDynamicObjects()
-
getStartIdIndex
public long getStartIdIndex()
-
getStartPidHashCodeIndex
public long getStartPidHashCodeIndex()
-
getStartMixedSet
public long getStartMixedSet()
-
updateHeaderPositions
public void updateHeaderPositions(de.bsvrz.puk.config.configFile.fileaccess.HeaderInfo headerInfo)
-
writeInvalidTime
public void writeInvalidTime(DynamicObjectInformation object)
Wird aufgerufen, wenn ein dynamisches Objekt ungültig wird. Falls das Objekt bereits- Parameters:
object-
-
restructure
@Deprecated public boolean restructure()
Deprecated.Bitte Mode-Parameter übergeben um die Art der Restrukturierung anzugeben.Führt eine volle Restrukturierugn aus- Specified by:
restructurein interfaceConfigurationAreaFile- Returns:
- true falls erfolgreich sonst false
-
-