Package de.bsvrz.ars.ars.persistence
Class StandaloneContainerFileHandle
java.lang.Object
de.bsvrz.ars.ars.persistence.StandaloneContainerFileHandle
- All Implemented Interfaces:
ContainerManagementData
,DataSequence
,AutoCloseable
- Direct Known Subclasses:
BasicContainerFileHandle
public class StandaloneContainerFileHandle
extends Object
implements AutoCloseable, ContainerManagementData, DataSequence
Referenz auf eine unabhängige Containerdatei außerhalb des Persistenzverzeichnisses
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Interner Konstruktor, der von abgeleiteten Klassen verwendet wird.StandaloneContainerFileHandle
(Path containerFile) Haupt-Konstruktor -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Die Methode beendet den Zugriff auf den Container (der Container wird nicht abgeschlossen), wird benötigt für dasAutoCloseable
-interface.void
Stellt sicher, dass der Header eingelesen wurde.final ContainerFile
Gibt containerFile von diesem BasicContainerFileHandle-Objekt zurück.de.bsvrz.dav.daf.main.archive.ArchiveDataKind
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.boolean
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.boolean
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.int
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.int
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.long
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.long
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.long
Gibt die Container-ID zurückgetFile()
Gibt die Datei zurückGibt den Ort des Containers zurückGibt den Ort des Containers zurückboolean
Prüft, ob der Container geschlossen ist, ohne den Zugriff auf denDataIdentNode
zu prüfen.boolean
Prüft ob der Container bereits abgeschlossen ist.iterator()
Erzeugt einen Iterator über Containerdaten.void
Beendet das Arbeiten mit dem zuvor über eine deraccessContainer()
-Methoden definierten Container.void
Liest den Header der Container-Datei ein und springt im Eingabestrom an die Stelle hinter dem Header.toString()
-
Constructor Details
-
StandaloneContainerFileHandle
protected StandaloneContainerFileHandle()Interner Konstruktor, der von abgeleiteten Klassen verwendet wird. -
StandaloneContainerFileHandle
Haupt-Konstruktor- Parameters:
containerFile
- Zu öffnende Containerdatei- Throws:
PersistenceException
- Fehler beim Lesen (Datei korrupt?)
-
-
Method Details
-
getContainerFile
Gibt containerFile von diesem BasicContainerFileHandle-Objekt zurück.- Returns:
- containerFile (Typ ContainerFile)
-
leaveContainer
public void leaveContainer()Beendet das Arbeiten mit dem zuvor über eine deraccessContainer()
-Methoden definierten Container. -
getContainerHeaderParamAsString
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde. Liefert den Wert des Parameters unabhaengig von dessen Typ immer als String zurück.- Parameters:
param
- Container-Header-Parameter- Returns:
- Parameter-Wert als String
- Throws:
PersistenceException
- Lesefehler- See Also:
-
getContainerHeaderParamAsArchiveDataKind
public de.bsvrz.dav.daf.main.archive.ArchiveDataKind getContainerHeaderParamAsArchiveDataKind(KeyValParam param) throws PersistenceException Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Liefert den Wert des Parameters als Datensatzart zurück. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde oder nicht in den TypArchiveDataKind
umgeformt werden kann.- Parameters:
param
- Container-Header-Parameter- Returns:
- Datensatzart
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getContainerHeaderParamAsBoolean
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Liefert den Wert des Parameters als boolschen Wert zurück. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde oder nicht in den Typboolean
umgeformt werden kann.- Parameters:
param
- Container-Header-Parameter- Returns:
true
oderfalse
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getContainerHeaderParamAsLong
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Liefert den Wert des Parameters als numerischen Wert vom Typlong
zurück. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde oder nicht in den Typlong
umgeformt werden kann.- Parameters:
param
- Container-Header-Parameter- Returns:
- Ganzzahl als
long
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getContainerHeaderParamAsInt
Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Liefert den Wert des Parameters als numerischen Wert vom Typlong
zurück. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde oder nicht in den Typlong
umgeformt werden kann.- Parameters:
param
- Container-Header-Parameter- Returns:
- Ganzzahl als
long
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getContainerHeaderParamAsString
public String getContainerHeaderParamAsString(ContainerManagementInformation param) throws PersistenceException Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde. Liefert den Wert des Parameters unabhaengig von dessen Typ immer als String zurück.- Specified by:
getContainerHeaderParamAsString
in interfaceContainerManagementData
- Parameters:
param
- Container-Header-Parameter- Returns:
- Parameter-Wert als String
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis- See Also:
-
getContainerHeaderParamAsBoolean
public boolean getContainerHeaderParamAsBoolean(ContainerManagementInformation param) throws PersistenceException Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Liefert den Wert des Parameters als boolschen Wert zurück. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde oder nicht in den Typboolean
umgeformt werden kann.- Specified by:
getContainerHeaderParamAsBoolean
in interfaceContainerManagementData
- Parameters:
param
- Container-Header-Parameter- Returns:
true
oderfalse
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getContainerHeaderParamAsLong
public long getContainerHeaderParamAsLong(ContainerManagementInformation param) throws PersistenceException Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Liefert den Wert des Parameters als numerischen Wert vom Typlong
zurück. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde oder nicht in den Typlong
umgeformt werden kann.- Specified by:
getContainerHeaderParamAsLong
in interfaceContainerManagementData
- Parameters:
param
- Container-Header-Parameter- Returns:
- Ganzzahl als
long
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getContainerHeaderParamAsInt
public int getContainerHeaderParamAsInt(ContainerManagementInformation param) throws PersistenceException Nachdem mitreadContainerHeader()
der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Liefert den Wert des Parameters als numerischen Wert vom Typint
zurück. Wirft einePersistenceException
, falls der Parameter nicht gefunden wurde oder nicht in den Typint
umgeformt werden kann.- Specified by:
getContainerHeaderParamAsInt
in interfaceContainerManagementData
- Parameters:
param
- Container-Header-Parameter- Returns:
- Ganzzahl als
int
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getLocation
Description copied from interface:ContainerManagementData
Gibt den Ort des Containers zurück- Specified by:
getLocation
in interfaceContainerManagementData
- Returns:
- den Ort des Containers
- Throws:
PersistenceException
-
getLocationFromHeader
Gibt den Ort des Containers zurück- Returns:
- den Ort des Containers
- Throws:
PersistenceException
-
close
public void close()Die Methode beendet den Zugriff auf den Container (der Container wird nicht abgeschlossen), wird benötigt für dasAutoCloseable
-interface.Die Methode ruft nur
leaveContainer()
auf.- Specified by:
close
in interfaceAutoCloseable
-
readContainerHeader
Liest den Header der Container-Datei ein und springt im Eingabestrom an die Stelle hinter dem Header. Die Container-Header Parameter stehen dann als Key/Value-Paare zur Verfuegung und können mitgetContainerHeaderParamAsString(KeyValParam)
abgefragt werden.- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
iterator
Erzeugt einen Iterator über Containerdaten. Falls der Container nach der alten Methode gelöscht ist (und nur aus Header und Datensatzbereich besteht) werden nur die Datenindexe zurückgegeben.Dieses Verhalten wird nur für die Migration zu einem
DeletedContainerFile
verwendet. In der Regel ist ein BasicContainerFileHandle nicht gelöscht.- Specified by:
iterator
in interfaceDataSequence
- Returns:
- Iterator
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getContainerId
public long getContainerId()Gibt die Container-ID zurück- Returns:
- Container-ID
-
isContainerClosed
Prüft ob der Container bereits abgeschlossen ist.- Returns:
- Kennzeichen, ob Container abgeschlossen ist
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
isClosedInternal
Prüft, ob der Container geschlossen ist, ohne den Zugriff auf denDataIdentNode
zu prüfen.- Returns:
- Kennzeichen, ob Container abgeschlossen ist
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-
getFile
Gibt die Datei zurück- Returns:
- die Datei
-
toString
-
ensureHeaderRead
Stellt sicher, dass der Header eingelesen wurde. Liest ihn ein, falls noch nicht geschehen.- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-