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
ConstructorsModifierConstructorDescriptionprotectedInterner Konstruktor, der von abgeleiteten Klassen verwendet wird.StandaloneContainerFileHandle(Path containerFile) Haupt-Konstruktor -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Die Methode beendet den Zugriff auf den Container (der Container wird nicht abgeschlossen), wird benötigt für dasAutoCloseable-interface.voidStellt sicher, dass der Header eingelesen wurde.final ContainerFileGibt containerFile von diesem BasicContainerFileHandle-Objekt zurück.de.bsvrz.dav.daf.main.archive.ArchiveDataKindNachdem mitreadContainerHeader()der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.booleanNachdem mitreadContainerHeader()der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.booleanNachdem mitreadContainerHeader()der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.intNachdem mitreadContainerHeader()der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.intNachdem mitreadContainerHeader()der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.longNachdem mitreadContainerHeader()der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden.longNachdem 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.longGibt die Container-ID zurückgetFile()Gibt die Datei zurückGibt den Ort des Containers zurückGibt den Ort des Containers zurückbooleanPrüft, ob der Container geschlossen ist, ohne den Zugriff auf denDataIdentNodezu prüfen.booleanPrüft ob der Container bereits abgeschlossen ist.iterator()Erzeugt einen Iterator über Containerdaten.voidBeendet das Arbeiten mit dem zuvor über eine deraccessContainer()-Methoden definierten Container.voidLiest 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 TypArchiveDataKindumgeformt 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 Typbooleanumgeformt werden kann.- Parameters:
param- Container-Header-Parameter- Returns:
trueoderfalse- 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 Typlongzurück. Wirft einePersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typlongumgeformt 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 Typlongzurück. Wirft einePersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typlongumgeformt 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:
getContainerHeaderParamAsStringin 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 Typbooleanumgeformt werden kann.- Specified by:
getContainerHeaderParamAsBooleanin interfaceContainerManagementData- Parameters:
param- Container-Header-Parameter- Returns:
trueoderfalse- 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 Typlongzurück. Wirft einePersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typlongumgeformt werden kann.- Specified by:
getContainerHeaderParamAsLongin 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 Typintzurück. Wirft einePersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typintumgeformt werden kann.- Specified by:
getContainerHeaderParamAsIntin interfaceContainerManagementData- Parameters:
param- Container-Header-Parameter- Returns:
- Ganzzahl als
int - Throws:
PersistenceException- Lesefehler im Persistenzverzeichnis
-
getLocation
Description copied from interface:ContainerManagementDataGibt den Ort des Containers zurück- Specified by:
getLocationin 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:
closein 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
DeletedContainerFileverwendet. In der Regel ist ein BasicContainerFileHandle nicht gelöscht.- Specified by:
iteratorin 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 denDataIdentNodezu 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
-