public class ConfigAreaFile extends java.lang.Object implements ConfigurationAreaFile
Diese Klasse stellt eine Konfigurationsbereichsdatei dar und speichert alle Objekte des Bereichs mit Historie.
Modifier and Type | Class and 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.
|
ConfigurationAreaFile.RestructureMode
Constructor and 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.
|
Modifier and Type | Method and 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 Zielverzeichnis
|
ConfigurationObjectInfo |
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,
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(Consumer<? super SystemObjectInformationInterface> consumer)
Iteriert über alle Objekte in diesem Bereich.
|
void |
forEachMixedObject(Consumer<? super SystemObjectInformationInterface> consumer)
Iteriert über alle Objekte in der Mischmenge in diesem Bereich.
|
void |
forEachOldConfigurationObject(Consumer<? super ConfigurationObjectInfo> consumer)
Iteriert über alle Konfigurationsobjekte in den NGA-Blöcken in diesem Bereich.
|
void |
forEachOldDynamicObject(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(java.util.Collection<java.lang.Long> typeIds)
Gibt alle aktuellen Objekte zurück, die als TypeId einen der übergebenen TypeIds besitzen.
|
SystemObjectInformationInterface[] |
getActualObjects(long typeId)
Gibt alle aktuellen Objekte zurück, die als TypeId die übergebene TypeId 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()
Gibt das Headerende zurück ( = Position des Starts der NGA-Blöcke)
|
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,
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.
|
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 Serializer
Serializer erstellt. |
long |
getStartIdIndex()
Gibt den Start des ID-Index zurück
|
long |
getStartMixedSet()
Gibt den Start der Mischmenge zurück
|
long |
getStartOldDynamicObjects()
Gibt den Start des NG-Dyn-Blocks zurück
|
long |
getStartPidHashCodeIndex()
Gibt den Start des Pid-Index zurück
|
boolean |
initialVersionRestructure()
Diese Methode wird aufgerufen, wenn der Konfigurationsverantwortliche eine neue Version aktiviert.
|
java.util.Iterator<SystemObjectInformationInterface> |
iterator()
Deprecated.
|
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 darf
|
boolean |
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 mit
ConfigurationAreaFile.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.
|
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.
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 wurdejava.io.IOException
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..
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
- java.io.IOException
public java.lang.String toString()
toString
in class java.lang.Object
public void setNextActiveVersion(short nextActiveVersion)
ConfigurationAreaFile
Legt die Version fest mit der Konfigurationsobjekte, die mit ConfigurationAreaFile.createConfigurationObject(long, long, java.lang.String, java.lang.String)
erzeugt werden, gültig werden.
setNextActiveVersion
in interface ConfigurationAreaFile
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.public short getNextActiveVersion()
ConfigurationAreaFile
Liefert die Version, ab der neu erstellte Konfigurationsobjekte gültig werden.
getNextActiveVersion
in interface ConfigurationAreaFile
public ConfigurationObjectInfo getConfigurationAreaInfo()
Methode, die das Objekt, das den Konfigurationsbereich darstellt, zurück gibt.
getConfigurationAreaInfo
in interface ConfigurationAreaFile
null
, wenn der Bereich gerade erzeugt wurde.public void flush() throws java.io.IOException
ConfigurationAreaFile
Diese Methode wird aufgerufen, wenn alle modifizierten Objekte des Konfigurationsbereichs persistent gespeichert werden sollen.
flush
in interface ConfigurationAreaFile
java.io.IOException
- Fehler beim Zugriff auf die Datei in der der Konfigurationsbereich gespeichert istpublic void createBackupFile(java.io.File targetDirectory) throws java.io.IOException
Sichert die Datei in ein angegebenes Zielverzeichnis
targetDirectory
- Zielverzeichnisjava.io.IOException
- IO-Fehlerpublic long getBackupProgress()
public long getFileLength()
public void close() throws java.io.IOException
ConfigurationAreaFile
Diese Methode wird aufgerufen, wenn das System heruntergefahren soll. Es müssen alle Daten gespeichert werden (siehe ConfigurationAreaFile.flush()
und ein Zustand hergestellt werden, mit dem das System zu einem späteren Zeitpunkt wieder hochgefahren werden kann.
close
in interface ConfigurationAreaFile
java.io.IOException
- Fehler beim Zugriff auf die Datei in der der Konfigurationsbereich gespeichert istpublic DynamicObjectInfo createDynamicObject(long objectID, long typeID, java.lang.String pid, short simulationVariant, java.lang.String name, DynamicObjectType.PersistenceMode persistenceMode)
ConfigurationAreaFile
Diese Methode erzeugt ein dynamisches Objekt, das sofort gültig ist.
createDynamicObject
in interface ConfigurationAreaFile
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 werdenConfigurationAreaFile.getGreatestId()
public ConfigurationObjectInfo createConfigurationObject(long objectID, long typeID, java.lang.String pid, java.lang.String name)
ConfigurationAreaFile
Diese Methode erzeugt ein Konfigurationsobjekt.
createConfigurationObject
in interface ConfigurationAreaFile
objectID
- ID des ObjektstypeID
- Typ des Objekts, der Typ wird über die ID festgelegtpid
- Pid des Objektsname
- Name des Objekts, null
wird als "" interpretiertConfigurationAreaFile.getGreatestId()
public SystemObjectInformationInterface[] getCurrentObjects()
ConfigurationAreaFile
Diese Methode gibt alle dynamischen Objekte und Konfigurationsobjekte zurück, die in der aktuellen Version aktuell sind.
getCurrentObjects
in interface ConfigurationAreaFile
public SystemObjectInformationInterface[] getActualObjects(long typeId)
ConfigurationAreaFile
Gibt alle aktuellen Objekte zurück, die als TypeId die übergebene TypeId besitzen.
getActualObjects
in interface ConfigurationAreaFile
typeId
- TypeId, die ein Objekt besitzen muss, damit es zurückgegeben wirdpublic SystemObjectInformationInterface[] getActualObjects(java.util.Collection<java.lang.Long> typeIds)
ConfigurationAreaFile
Gibt alle aktuellen Objekte zurück, die als TypeId einen der übergebenen TypeIds besitzen.
getActualObjects
in interface ConfigurationAreaFile
typeIds
- TypeIds, die ein Objekt besitzen muss, damit es zurückgegeben wirdpublic SystemObjectInformationInterface[] getObjects(long startTime, long endTime, ConfigurationAreaTime kindOfTime, TimeSpecificationType timeSpecificationType, java.util.Collection<java.lang.Long> typeIds)
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 Parameter timeSpecificationType
bestimmt, wann/wie lange ein Objekt gültig gewesen sein muss um in die Lösung aufgenommen zu werden.
getObjects
in interface ConfigurationAreaFile
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 übereinstimmenpublic short getActiveVersion(long startTime, ConfigurationAreaTime kindOfTime)
Gibt zu einem Zeitpunkt die Version zurück, die aktiv war.
startTime
- Zeitpunkt, zu dem die Version aktiv gewesen sein musskindOfTime
- Soll die Aktivierungszeit des Konfigurationsverantwortlichen oder die lokale Aktivierung zur Berechnung der Version benutzt werdenpublic SystemObjectInformationInterface[] getNewObjects()
ConfigurationAreaFile
Diese Methode gibt alle Konfigurationsobjekte zurück, die in einer zukünftigen Version aktuell werden.
getNewObjects
in interface ConfigurationAreaFile
@Deprecated public java.util.Iterator<SystemObjectInformationInterface> iterator()
ConfigurationAreaFile
Stellt alle dynamischen Objekte und Konfigurationsobjekte zur Verfügung.
iterator
in interface ConfigurationAreaFile
public void forEach(Consumer<? super SystemObjectInformationInterface> consumer)
Iteriert über alle Objekte in diesem Bereich.
forEach
in interface ConfigurationAreaFile
consumer
- Java-8-Style Consumer, an den jedes gefundene Objekt übergeben wirdpublic void forEachOldConfigurationObject(Consumer<? super ConfigurationObjectInfo> consumer)
Iteriert über alle Konfigurationsobjekte in den NGA-Blöcken in diesem Bereich.
forEachOldConfigurationObject
in interface ConfigurationAreaFile
consumer
- Java-8-Style Consumer, an den jedes gefundene Objekt übergeben wirdpublic void forEachOldDynamicObject(Consumer<? super DynamicObjectInfo> consumer)
Iteriert über alle dynamischen Objekte im NGDyn-Block in diesem Bereich.
forEachOldDynamicObject
in interface ConfigurationAreaFile
consumer
- Java-8-Style Consumer, an den jedes gefundene Objekt übergeben wirdpublic void forEachMixedObject(Consumer<? super SystemObjectInformationInterface> consumer)
Iteriert über alle Objekte in der Mischmenge in diesem Bereich.
forEachMixedObject
in interface ConfigurationAreaFile
consumer
- Java-8-Style Consumer, an den jedes gefundene Objekt übergeben wirdpublic 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.
SystemObjectInformationInterface
und ConfigAreaFile.OldObject
java.io.IOException
NoSuchVersionException
public SystemObjectInformationInterface getOldObject(long id)
ConfigurationAreaFile
Diese Methode gibt ein Objekt zurück, das als ungültig markiert wurde. Ist in diesem Konfigurationsbereich kein Objekt mit der Id vorhanden, wird null
zurückgegeben.
getOldObject
in interface ConfigurationAreaFile
id
- Id des geforderten Objektsnull
public java.util.List<SystemObjectInformationInterface> getObjects(java.lang.String pid, long startTime, long endTime, ConfigurationAreaTime kindOfTime, short simulationVariant)
ConfigurationAreaFile
Diese Methode gibt Objekte zurück, die in dem angegebenen Zeibereich gültig waren.
getObjects
in interface ConfigurationAreaFile
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.public int getSerializerVersion()
ConfigurationAreaFile
Alle Daten, die als Byte-Array gespeichert werden müssen, werden mit einem Serializer Serializer
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.
getSerializerVersion
in interface ConfigurationAreaFile
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.
initialVersionRestructure
in interface ConfigurationAreaFile
restructure(de.bsvrz.puk.config.configFile.fileaccess.ConfigurationAreaFile.RestructureMode)
public long getGreatestId()
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.
getGreatestId
in interface ConfigurationAreaFile
public void restructure(ConfigurationAreaFile.RestructureMode mode) throws java.io.IOException
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 Konfigrationsverantwortlichen aufgerufen werden.
restructure
in interface ConfigurationAreaFile
mode
- Restrukturierungsart (siehe RestructureMode
java.io.IOException
- Falls ein Fehler bei der Restrukturierung auftrat. In diesem Fall bleibt der vorherige Zustand erhalten.public void swapFiles(de.bsvrz.puk.config.configFile.fileaccess.RestructureInfo restructureInfo, java.io.File configAreaNewName) throws java.io.IOException
java.io.IOException
public static long getRelativeFilePositionForInvalidConfigObject(long headerEnd, long absoluteFilePosition)
public static long getRelativeFilePositionForInvalidDynamicObject(long dynamicAreaOffset, long absoluteFilePosition)
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)
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)
public java.lang.String getConfigAreaPid()
Gibt die Pid des Konfigurationsbereichs zurück.
public void markObjectsForDeletion(java.util.List<java.lang.Long> objectsToDelete)
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.
markObjectsForDeletion
in interface ConfigurationAreaFile
objectsToDelete
- Menge mit zu löschenden dynamischen Objekten dieses Bereichs (Objekt-IDs)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.
public boolean referenceAllowed(SystemObjectInformationInterface systemObjectInfo)
ConfigurationAreaFile
Prüft, ob ein angegebenenes Objekt von anderen Objekten referenzert werden darf
referenceAllowed
in interface ConfigurationAreaFile
systemObjectInfo
- Objekt-Info (Objekt sollte zum aktuellen Bereich gehören)zu Löschen markiert
wurde, sonst falsepublic long getHeaderEnd()
public long getStartOldDynamicObjects()
public long getStartIdIndex()
public long getStartPidHashCodeIndex()
public long getStartMixedSet()
public void updateHeaderPositions(de.bsvrz.puk.config.configFile.fileaccess.HeaderInfo headerInfo)
public void writeInvalidTime(DynamicObjectInformation object)
Wird aufgerufen, wenn ein dynamisches Objekt ungültig wird. Falls das Objekt bereits
object
- @Deprecated public boolean restructure()
Führt eine volle Restrukturierugn aus
restructure
in interface ConfigurationAreaFile