Class ShortPersistenceDirectoryLayout

java.lang.Object
de.bsvrz.ars.ars.persistence.layout.ShortPersistenceDirectoryLayout
All Implemented Interfaces:
PersistenceDirectoryLayout

public class ShortPersistenceDirectoryLayout extends Object implements PersistenceDirectoryLayout
Modernes Layout für "kurze" Persistenzverzeichnisse. Die Dateien werden in Verzeichnissen wie "2023/2023-01-08/0-4bpz/0-jh/2057-1b4/oa" relativ zum Persistenzverzeichnis gespeichert, wobei das "oa" nicht zu der Implementierung dieses PersistenceDirectoryLayout gehört
  • Field Details

  • Method Details

    • getPath

      public Path getPath(Path basePath, long objId, long atgId, long aspId)
      Description copied from interface: PersistenceDirectoryLayout
      Liefert den Archiv-Pfad für die angegebene Datenidentifikation und den Wurzelpfad des Archivsystems.
      Specified by:
      getPath in interface PersistenceDirectoryLayout
      Parameters:
      basePath - Wurzelverzeichnis
      objId - Objekt-ID
      atgId - Attributgruppen-ID
      aspId - Aspekt-ID
      Returns:
      Archiv-Pfad
    • getDataIdentificationFromPath

      public IdDataIdentification getDataIdentificationFromPath(List<String> path, int simulationVariant)
      Description copied from interface: PersistenceDirectoryLayout
      Identifiziert die Datenidentifiaktion des angegebenen Verzeichnisses
      Specified by:
      getDataIdentificationFromPath in interface PersistenceDirectoryLayout
      Parameters:
      path - Stack wo man sich im Verzeichnisbaum befindet
      simulationVariant - Simulatiosnvariante
      Returns:
      Typ des angegebenen Pfads
    • encode

      public static String encode(long id)
      Wandelt eine Objekt-ID in einen Verzeichnisnamen um. Der Verzeichnisname ergibt sich aus der KV-Kodierung der ID (die höchsten 16 Bits), dann einem Trennstrich ("-"), und dann die laufende Nummer der ID kodiert als Base 36.
      Parameters:
      id - Objekt-ID. Der Wert -1 ist nicht zulässig.
      Returns:
      Verzeichnisname.
    • decode

      public static long decode(String string) throws PersistenceException
      Dekodiert einen Verzeichnisnamen in eine Objekt-ID
      Parameters:
      string - Verzeichnisname wie z. B. "2057-1b4"
      Returns:
      Objekt-ID
      Throws:
      PersistenceException - Der Pfad ist nicht als Objekt-ID interpretierbar
    • decodeFast

      public static long decodeFast(String string)
      Dekodiert einen Verzeichnisnamen in eine Objekt-ID
      Parameters:
      string - Verzeichnisname wie z. B. "2057-1b4"
      Returns:
      Objekt-ID oder -1, falls das Verzeichnis nicht verarbeitet werden konnte
    • getMaxDepth

      public int getMaxDepth()
      Description copied from interface: PersistenceDirectoryLayout
      Gibt die maximale Tiefe zurück, in der datenidentifikationsverzeichnisse zu erwarten sind
      Specified by:
      getMaxDepth in interface PersistenceDirectoryLayout
      Returns:
      maximale Tiefe im Dateisystem-Baum
    • identifyPath

      public PathType identifyPath(List<String> pathStack)
      Description copied from interface: PersistenceDirectoryLayout
      Identifiziert den Typ des angegebenen Verzeichnisses
      Specified by:
      identifyPath in interface PersistenceDirectoryLayout
      Parameters:
      pathStack - Stack wo man sich im Verzeichnisbaum befindet
      Returns:
      Typ des angegebenen Pfads
    • instance

      public static PersistenceDirectoryLayoutInstance instance(Path basePath, int simulationVariant)
      Erzeugt eine PersistenceDirectoryLayoutInstance basierend auf diesem Layout
      Parameters:
      basePath - Basisverzeichnis, in dem das Layout Unterverzeichnisse erstellen soll.
      simulationVariant - Simulationsvariante
      Returns:
      Eine PersistenceDirectoryLayoutInstance