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 Details

    • StandaloneContainerFileHandle

      protected StandaloneContainerFileHandle()
      Interner Konstruktor, der von abgeleiteten Klassen verwendet wird.
    • StandaloneContainerFileHandle

      public StandaloneContainerFileHandle(Path containerFile) throws PersistenceException
      Haupt-Konstruktor
      Parameters:
      containerFile - Zu öffnende Containerdatei
      Throws:
      PersistenceException - Fehler beim Lesen (Datei korrupt?)
  • Method Details

    • getContainerFile

      public final ContainerFile 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 der accessContainer()-Methoden definierten Container.
    • getContainerHeaderParamAsString

      public String getContainerHeaderParamAsString(KeyValParam param) throws PersistenceException
      Nachdem mit readContainerHeader() der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Wirft eine PersistenceException, 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 mit readContainerHeader() 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 eine PersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typ ArchiveDataKind umgeformt werden kann.
      Parameters:
      param - Container-Header-Parameter
      Returns:
      Datensatzart
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getContainerHeaderParamAsBoolean

      public boolean getContainerHeaderParamAsBoolean(KeyValParam param) throws PersistenceException
      Nachdem mit readContainerHeader() 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 eine PersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typ boolean umgeformt werden kann.
      Parameters:
      param - Container-Header-Parameter
      Returns:
      true oder false
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getContainerHeaderParamAsLong

      public long getContainerHeaderParamAsLong(KeyValParam param) throws PersistenceException
      Nachdem mit readContainerHeader() 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 Typ long zurück. Wirft eine PersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typ long umgeformt werden kann.
      Parameters:
      param - Container-Header-Parameter
      Returns:
      Ganzzahl als long
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getContainerHeaderParamAsInt

      public int getContainerHeaderParamAsInt(KeyValParam param) throws PersistenceException
      Nachdem mit readContainerHeader() 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 Typ long zurück. Wirft eine PersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typ long 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 mit readContainerHeader() der Header einer Container-Datei eingelesen worden ist, kann mit dieser Methode der Wert eines Header-Parameters ermittelt werden. Wirft eine PersistenceException, falls der Parameter nicht gefunden wurde. Liefert den Wert des Parameters unabhaengig von dessen Typ immer als String zurück.
      Specified by:
      getContainerHeaderParamAsString in interface ContainerManagementData
      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 mit readContainerHeader() 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 eine PersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typ boolean umgeformt werden kann.
      Specified by:
      getContainerHeaderParamAsBoolean in interface ContainerManagementData
      Parameters:
      param - Container-Header-Parameter
      Returns:
      true oder false
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getContainerHeaderParamAsLong

      public long getContainerHeaderParamAsLong(ContainerManagementInformation param) throws PersistenceException
      Nachdem mit readContainerHeader() 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 Typ long zurück. Wirft eine PersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typ long umgeformt werden kann.
      Specified by:
      getContainerHeaderParamAsLong in interface ContainerManagementData
      Parameters:
      param - Container-Header-Parameter
      Returns:
      Ganzzahl als long
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getContainerHeaderParamAsInt

      public int getContainerHeaderParamAsInt(ContainerManagementInformation param) throws PersistenceException
      Nachdem mit readContainerHeader() 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 Typ int zurück. Wirft eine PersistenceException, falls der Parameter nicht gefunden wurde oder nicht in den Typ int umgeformt werden kann.
      Specified by:
      getContainerHeaderParamAsInt in interface ContainerManagementData
      Parameters:
      param - Container-Header-Parameter
      Returns:
      Ganzzahl als int
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getLocation

      public ContainerDirectory getLocation() throws PersistenceException
      Description copied from interface: ContainerManagementData
      Gibt den Ort des Containers zurück
      Specified by:
      getLocation in interface ContainerManagementData
      Returns:
      den Ort des Containers
      Throws:
      PersistenceException
    • getLocationFromHeader

      public IdContainerFileDir getLocationFromHeader() throws PersistenceException
      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 das AutoCloseable-interface.

      Die Methode ruft nur leaveContainer() auf.

      Specified by:
      close in interface AutoCloseable
    • readContainerHeader

      public void readContainerHeader() throws PersistenceException
      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 mit getContainerHeaderParamAsString(KeyValParam) abgefragt werden.
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • iterator

      @NotNull public ContainerDataIterator iterator() throws PersistenceException
      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 interface DataSequence
      Returns:
      Iterator
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getContainerId

      public long getContainerId()
      Gibt die Container-ID zurück
      Returns:
      Container-ID
    • isContainerClosed

      public boolean isContainerClosed() throws PersistenceException
      Prüft ob der Container bereits abgeschlossen ist.
      Returns:
      Kennzeichen, ob Container abgeschlossen ist
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • isClosedInternal

      public boolean isClosedInternal() throws PersistenceException
      Prüft, ob der Container geschlossen ist, ohne den Zugriff auf den DataIdentNode zu prüfen.
      Returns:
      Kennzeichen, ob Container abgeschlossen ist
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getFile

      public Path getFile()
      Gibt die Datei zurück
      Returns:
      die Datei
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • ensureHeaderRead

      public void ensureHeaderRead() throws PersistenceException
      Stellt sicher, dass der Header eingelesen wurde. Liest ihn ein, falls noch nicht geschehen.
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis