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 class
ConfigAreaFile.OldBlockInformations
Diese 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 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)
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)
void
close()
Diese Methode wird aufgerufen, wenn das System heruntergefahren soll.void
createBackupFile(java.io.File targetDirectory)
Sichert die Datei in ein angegebenes ZielverzeichnisConfigurationObjectInfo
createConfigurationObject(long objectID, long typeID, java.lang.String pid, java.lang.String name)
Diese Methode erzeugt ein Konfigurationsobjekt.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)
Diese Methode erzeugt ein dynamisches Objekt, das sofort gültig ist.void
deleteDynamicObjectsPermanently()
Löscht die für das Löschen vorgemerkten dynamischen Objekte vollständig und permanent.void
flush()
Diese Methode wird aufgerufen, wenn alle modifizierten Objekte des Konfigurationsbereichs persistent gespeichert werden sollen.void
forEach(java.util.function.Consumer<? super SystemObjectInformationInterface> consumer)
Iteriert über alle Objekte in diesem Bereich.void
forEachMixedObject(java.util.function.Consumer<? super SystemObjectInformationInterface> consumer)
Iteriert über alle Objekte in der Mischmenge in diesem Bereich.void
forEachOldConfigurationObject(java.util.function.Consumer<? super ConfigurationObjectInfo> consumer)
Iteriert über alle Konfigurationsobjekte in den NGA-Blöcken in diesem Bereich.void
forEachOldDynamicObject(java.util.function.Consumer<? super DynamicObjectInfo> consumer)
Iteriert über alle dynamischen Objekte im NGDyn-Block in diesem Bereich.short
getActiveVersion(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.long
getBackupProgress()
java.lang.String
getConfigAreaPid()
Gibt die Pid des Konfigurationsbereichs zurück.ConfigurationObjectInfo
getConfigurationAreaInfo()
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.long
getFileLength()
long
getGreatestId()
Diese Methode gibt die größte vergebene laufende Nummer einer Id des Konfigurationsbereichs zurück.long
getHeaderEnd()
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.short
getNextActiveVersion()
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.SystemObjectInformationInterface
getOldObject(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 long
getRelativeFilePositionForInvalidConfigObject(long headerEnd, long absoluteFilePosition)
static long
getRelativeFilePositionForInvalidDynamicObject(long dynamicAreaOffset, long absoluteFilePosition)
int
getSerializerVersion()
Alle Daten, die als Byte-Array gespeichert werden müssen, werden mit einem SerializerSerializer
erstellt.long
getStartIdIndex()
long
getStartMixedSet()
long
getStartOldDynamicObjects()
long
getStartPidHashCodeIndex()
boolean
initialVersionRestructure()
Diese Methode wird aufgerufen, wenn der Konfigurationsverantwortliche eine neue Version aktiviert.void
markObjectsForDeletion(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.boolean
referenceAllowed(SystemObjectInformationInterface systemObjectInfo)
Prüft, ob ein angegebenenes Objekt von anderen Objekten referenzert werden darfboolean
restructure()
Deprecated.Bitte Mode-Parameter übergeben um die Art der Restrukturierung anzugeben.void
restructure(ConfigurationAreaFile.RestructureMode mode)
Diese Methode reorganisiert eine Konfigurationsbereichsdatei.void
setNextActiveVersion(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.void
swapFiles(de.bsvrz.puk.config.configFile.fileaccess.RestructureInfo restructureInfo, java.io.File configAreaNewName)
java.lang.String
toString()
void
updateHeaderPositions(de.bsvrz.puk.config.configFile.fileaccess.HeaderInfo headerInfo)
void
writeInvalidTime(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.IOException
Dieser 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.IOException
Erzeugt 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:
toString
in classjava.lang.Object
-
getNextActiveVersion
public short getNextActiveVersion()
Description copied from interface:ConfigurationAreaFile
Liefert die Version, ab der neu erstellte Konfigurationsobjekte gültig werden.- Specified by:
getNextActiveVersion
in interfaceConfigurationAreaFile
- Returns:
- Liefert eine Version, ab der neu erstellte Konfigurationsobjekte gültig werden.
-
setNextActiveVersion
public void setNextActiveVersion(short nextActiveVersion)
Description copied from interface:ConfigurationAreaFile
Legt die Version fest mit der Konfigurationsobjekte, die mitConfigurationAreaFile.createConfigurationObject(long, long, java.lang.String, java.lang.String)
erzeugt werden, gültig werden.- Specified by:
setNextActiveVersion
in 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:
getConfigurationAreaInfo
in interfaceConfigurationAreaFile
- Returns:
- Objekt oder
null
, wenn der Bereich gerade erzeugt wurde.
-
flush
public void flush() throws java.io.IOException
Description copied from interface:ConfigurationAreaFile
Diese Methode wird aufgerufen, wenn alle modifizierten Objekte des Konfigurationsbereichs persistent gespeichert werden sollen.- Specified by:
flush
in 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.IOException
Sichert 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.IOException
Description copied from interface:ConfigurationAreaFile
Diese 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:
close
in 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:ConfigurationAreaFile
Diese Methode erzeugt ein dynamisches Objekt, das sofort gültig ist.- Specified by:
createDynamicObject
in 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,null
wird 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:ConfigurationAreaFile
Diese Methode erzeugt ein Konfigurationsobjekt.- Specified by:
createConfigurationObject
in interfaceConfigurationAreaFile
- Parameters:
objectID
- ID des ObjektstypeID
- Typ des Objekts, der Typ wird über die ID festgelegtpid
- Pid des Objektsname
- Name des Objekts,null
wird als "" interpretiert- Returns:
- Objekt, über das auf das Konfigurationsobjekt zugegriffen werden kann
- See Also:
ConfigurationAreaFile.getGreatestId()
-
getCurrentObjects
public SystemObjectInformationInterface[] getCurrentObjects()
Description copied from interface:ConfigurationAreaFile
Diese Methode gibt alle dynamischen Objekte und Konfigurationsobjekte zurück, die in der aktuellen Version aktuell sind.- Specified by:
getCurrentObjects
in interfaceConfigurationAreaFile
- Returns:
- s.o.
-
getActualObjects
public SystemObjectInformationInterface[] getActualObjects(long typeId)
Description copied from interface:ConfigurationAreaFile
Gibt alle aktuellen Objekte zurück, die als TypeId die übergebene TypeId besitzen.- Specified by:
getActualObjects
in 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:ConfigurationAreaFile
Gibt alle aktuellen Objekte zurück, die als TypeId einen der übergebenen TypeIds besitzen.- Specified by:
getActualObjects
in 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:ConfigurationAreaFile
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. Der ParametertimeSpecificationType
bestimmt, wann/wie lange ein Objekt gültig gewesen sein muss um in die Lösung aufgenommen zu werden.- Specified by:
getObjects
in 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:ConfigurationAreaFile
Diese Methode gibt alle Konfigurationsobjekte zurück, die in einer zukünftigen Version aktuell werden.- Specified by:
getNewObjects
in 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:
forEach
in 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:
forEachOldConfigurationObject
in 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:
forEachOldDynamicObject
in 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:
forEachMixedObject
in 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
SystemObjectInformationInterface
undConfigAreaFile.OldObject
-
getOldObject
public SystemObjectInformationInterface getOldObject(long id)
Description copied from interface:ConfigurationAreaFile
Diese Methode gibt ein Objekt zurück, das als ungültig markiert wurde. Ist in diesem Konfigurationsbereich kein Objekt mit der Id vorhanden, wirdnull
zurückgegeben.- Specified by:
getOldObject
in 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:ConfigurationAreaFile
Diese Methode gibt Objekte zurück, die in dem angegebenen Zeibereich gültig waren.- Specified by:
getObjects
in 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:ConfigurationAreaFile
Alle Daten, die als Byte-Array gespeichert werden müssen, werden mit einem SerializerSerializer
erstellt. 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:
getSerializerVersion
in 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:
initialVersionRestructure
in 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:ConfigurationAreaFile
Diese 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:
getGreatestId
in 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:ConfigurationAreaFile
Diese 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:
restructure
in 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:ConfigurationAreaFile
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. 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:
markObjectsForDeletion
in 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:ConfigurationAreaFile
Prüft, ob ein angegebenenes Objekt von anderen Objekten referenzert werden darf- Specified by:
referenceAllowed
in 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 markiert
wurde, sonst false
-
getOldObjects
public SystemObjectInformationInterface[] getOldObjects(java.util.SortedSet<java.lang.Long> ids)
Description copied from interface:ConfigurationAreaFile
Diese 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:
getOldObjects
in 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:
restructure
in interfaceConfigurationAreaFile
- Returns:
- true falls erfolgreich sonst false
-
-