Klasse TimeBasedPersistenceDirectoryManager<T extends TimeRange<T>>
java.lang.Object
de.bsvrz.ars.ars.persistence.directories.mgmt.TimeBasedPersistenceDirectoryManager<T>
- Typparameter:
T
- Typ des gewünschten Zeitabschnitts, z. B.Week
- Alle implementierten Schnittstellen:
PersistenceDirectoryManager
,DataGapManager
public class TimeBasedPersistenceDirectoryManager<T extends TimeRange<T>>
extends Object
implements PersistenceDirectoryManager
Implementierung des PersistenceDirectoryManager, die je Woche (oder anderer
TimeDomain
) ein eigenes
PersistenceDirectory
anlegt. Simulationen werden davon getrennt verwaltet.-
Verschachtelte Klassen - Übersicht
Verschachtelte KlassenModifizierer und TypKlasseBeschreibungstatic interface
Aktion fürexecuteOnSubDirectories(PathAction)
. -
Feldübersicht
FelderModifizierer und TypFeldBeschreibungstatic final String
Name des Ordners, der die Lückendateien für das Nachfordern enthält. -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungTimeBasedPersistenceDirectoryManager
(ContainerCreator containerCreator, Path rootPath, TimeDomain<T> domain) Erstellt eine neue Instanz -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungboolean
addPersistenceDirectory
(T directoryTimeRange) Integriert ein Verzeichnis in den aktiven ZugriffcreateSimulationDirectory
(int simVariant) Erstellt für die angegebene Simulationsvariante das Persistenzverzeichnis.void
Löscht ein Verzeichnis einer Simulationvoid
Führt einen rekursiven Verzeichnisdurchlauf aus und führt für jedes gefundene Wochenverzeichnis den angegebenen Befehl ausGibt das Persistenzverzeichnis zurück, in das aktuell archiviert wird.getGapFilePath
(IdDataIdentification dataIdentification) Gibt den Pfad und Dateinamen einer Lückendatei für das Nachfordern zurück.Gibt die Woche zu einem Dateisystem-Pfad zurück, welcher ein Wochenverzeichnis darstelltList
<? extends PersistenceDirectory> getPersistenceDirectories
(int simVariant, SequenceSpecification sequenceSpecification) Ermittelt alle Persistenzverzeichnisse, die zur angegebenen Zeitspezifikation die zugehörigen Archivdaten enthält.getPersistenceDirectory
(T directoryTimeRange) Gibt zu einer Woche das Persistenzverzeichnis zurückGibt das Wurzelverzeichnis der Persistenz zurück, unter dem die weiteren Persistenzverzeichnisse (je Zeitbereich) angelegt werden.getSimulationPersistenceDirectory
(int simVariant) Gibt das Persistenzverzeichnis zurück, das von einer speziellen Simulation verwendet wirdvoid
Initialisiert die Verzeichnisverwaltung und lädt z.boolean
isRangeUnavailable
(long fromArchiveTime, long toArchiveTime) Prüft, ob sich Teile des Persistenzverzeichnisses zwischen 2 Datensätzen nicht mehr im direkten Zugriff befinden, also ausgelagert oder gelöscht wurden.boolean
removePersistenceDirectory
(T directoryTimeRange) Wirft ein Persistenzverzeichnis aus (entfernt es aus dem aktiven Zugriff)void
shutDown()
Terminiert die Verzeichnisverwaltung, markiert die Verzeichnisse nicht mehr als benutzt und löscht alle Lock-Dateien.void
updatePersistenceDirectories
(long archTime) Aktualisiert das aktive Persistenzverzeichnis basierend auf der aktuellen Archivzeit
-
Felddetails
-
GAP_FILE_FOLDER_NAME
Name des Ordners, der die Lückendateien für das Nachfordern enthält.- Siehe auch:
-
-
Konstruktordetails
-
TimeBasedPersistenceDirectoryManager
public TimeBasedPersistenceDirectoryManager(ContainerCreator containerCreator, Path rootPath, TimeDomain<T> domain) Erstellt eine neue Instanz- Parameter:
containerCreator
- Persistenz-VerwaltungrootPath
- Wurzelverzeichnis, unter dem die Wochenverzeichnisse angelegt werden sollendomain
- Domain, die Pfadnamen in Zeitbereiche umwandelt, z. B.WeekDomain
.
-
-
Methodendetails
-
initialize
public void initialize() throws IOException, InterruptedException, PersistenceException, DirectoryIsLockedExceptionBeschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Initialisiert die Verzeichnisverwaltung und lädt z. B. die vorhandenen Verzeichnisse ein- Angegeben von:
initialize
in SchnittstellePersistenceDirectoryManager
- Löst aus:
IOException
- Dateisystem-LesefehlerInterruptedException
- UnterbrochenPersistenceException
- Persistenz fehlerDirectoryIsLockedException
- Persistenzverzeichnis ist bereits gelockt (isActive-Datei existiert)
-
updatePersistenceDirectories
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Aktualisiert das aktive Persistenzverzeichnis basierend auf der aktuellen Archivzeit- Angegeben von:
updatePersistenceDirectories
in SchnittstellePersistenceDirectoryManager
- Parameter:
archTime
- aktuelle Archivzeit (Millis seit Epoch)- Löst aus:
IOException
- IO-Fehler
-
executeOnSubDirectories
public void executeOnSubDirectories(TimeBasedPersistenceDirectoryManager.PathAction pathAction) throws PersistenceException, IOException, DirectoryIsLockedException Führt einen rekursiven Verzeichnisdurchlauf aus und führt für jedes gefundene Wochenverzeichnis den angegebenen Befehl aus- Parameter:
pathAction
- Auszuführende Aktion- Löst aus:
PersistenceException
- Fehler bei AktionIOException
- Fehler beim VerzeichnisdurchlaufDirectoryIsLockedException
-
getDomain
-
getId
Gibt die Woche zu einem Dateisystem-Pfad zurück, welcher ein Wochenverzeichnis darstellt- Parameter:
it
- Dateisystem-Pfad- Gibt zurück:
- Woche oder null, falls die Woche nicht bestimmbar ist.
-
getActivePersistenceDirectory
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Gibt das Persistenzverzeichnis zurück, in das aktuell archiviert wird. Kann null zurückgeben, z. B. während der Initialisierung oder während noch nichts archiviert wurde.- Angegeben von:
getActivePersistenceDirectory
in SchnittstellePersistenceDirectoryManager
- Gibt zurück:
- Aktives Persistenzverzeichnis
-
getPersistenceDirectories
public List<? extends PersistenceDirectory> getPersistenceDirectories(int simVariant, SequenceSpecification sequenceSpecification) Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Ermittelt alle Persistenzverzeichnisse, die zur angegebenen Zeitspezifikation die zugehörigen Archivdaten enthält.Achtung: Da bei Archivanfragen ggf. ein initialer Zustand und ein Nachfolgedatensatz (Gültigkeitsdauer des letzten Datensatzes) ermittelt werden muss, muss ein Aufrufer ggf. noch zusätzlich einen vorherigen oder nachfolgenden Container aus einem anderen Verzeichnis eigenständig ermitteln!
- Angegeben von:
getPersistenceDirectories
in SchnittstellePersistenceDirectoryManager
- Parameter:
simVariant
- SimulationsvariantesequenceSpecification
- Zeitspezifikation- Gibt zurück:
- Collection mit Persistenzverzeichnissen, die zurückgegebene Liste ist immutable.
-
getSimulationPersistenceDirectory
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Gibt das Persistenzverzeichnis zurück, das von einer speziellen Simulation verwendet wird- Angegeben von:
getSimulationPersistenceDirectory
in SchnittstellePersistenceDirectoryManager
- Parameter:
simVariant
- Simulationsvariante (> 0)- Gibt zurück:
- zugehöriges Persistenzverzeichnis oder null (wenn keines existiert).
-
createSimulationDirectory
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Erstellt für die angegebene Simulationsvariante das Persistenzverzeichnis. Sollte bereits ein Verzeichnis existieren, wird es zurückgegeben.- Angegeben von:
createSimulationDirectory
in SchnittstellePersistenceDirectoryManager
- Parameter:
simVariant
- Simulationsvariante (größer 0)- Gibt zurück:
- Zugehöriges Persistenzverzeichnis
-
getRootPath
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Gibt das Wurzelverzeichnis der Persistenz zurück, unter dem die weiteren Persistenzverzeichnisse (je Zeitbereich) angelegt werden.- Angegeben von:
getRootPath
in SchnittstellePersistenceDirectoryManager
- Gibt zurück:
- Wurzelverzeichnis, nicht null
-
shutDown
public void shutDown()Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Terminiert die Verzeichnisverwaltung, markiert die Verzeichnisse nicht mehr als benutzt und löscht alle Lock-Dateien.- Angegeben von:
shutDown
in SchnittstellePersistenceDirectoryManager
-
deleteSimulationDirectory
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Löscht ein Verzeichnis einer Simulation- Angegeben von:
deleteSimulationDirectory
in SchnittstellePersistenceDirectoryManager
- Parameter:
directory
- Persistenzverzeichnis der Simulation
-
getGapFilePath
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManager
Gibt den Pfad und Dateinamen einer Lückendatei für das Nachfordern zurück. In dieser Datei werden die bereits erhaltenen Datenlücken vermerkt, also wo erfolglos nachgefordert wurde, damit diese nicht sinnloserweise neu angefragt werden.- Angegeben von:
getGapFilePath
in SchnittstellePersistenceDirectoryManager
- Parameter:
dataIdentification
- Datenidentifikation- Gibt zurück:
- Ein Dateipfad
-
getPersistenceDirectory
Gibt zu einer Woche das Persistenzverzeichnis zurück- Parameter:
directoryTimeRange
- Woche- Gibt zurück:
- Persistenzverzeichnis
-
removePersistenceDirectory
Wirft ein Persistenzverzeichnis aus (entfernt es aus dem aktiven Zugriff)- Parameter:
directoryTimeRange
- Woche, die ausgeworfen werden soll- Gibt zurück:
- true: erfolgreich, false: Verzeichnis war nicht vorhanden oder Operation wurde unterbrochen
-
addPersistenceDirectory
Integriert ein Verzeichnis in den aktiven Zugriff- Parameter:
directoryTimeRange
- Woche- Gibt zurück:
- true: Verzeichnis wurde integriert, false: Verzeichnis konnte nicht integriert werden oder war bereits im Zugriff
-