Class ClassicPersistenceDirectoryLayout

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

public class ClassicPersistenceDirectoryLayout extends Object implements PersistenceDirectoryLayout
Klasse, die ein altes Archivsystem-Layout (Version 5 und früher) abbildet.

Das Layout besteht aus tief verschachtelten Verzeichnis-Strukturen, wobei die dezimale ID von Objekt, Attributgruppe und Aspekt jeweils in Dreierpäckchen aufgeteilt wird, z. B. wäre obj123/obj456/obj789/atg246/atg357/asp17 die Ordnerstruktur für das Objekt 123456789, die Attributgruppe 246357 und den Aspekt 17.

  • Field Details

  • Method Details

    • getPath

      public Path getPath(Path basePath, long objId, long atgId, long aspId)
      Liefert den Archiv-Pfad für die angegebene Datenidentifikation und den Wurzelpfad des Archivsystems. Der Pfad wird gebildet, indem die IDs und die SV in Dreiergruppen zerlegt und mit einem Praefix versehen werden. Pro Dreiergruppe und pro SimVarwird ein Verzeichnis verwendet.
      Specified by:
      getPath in interface PersistenceDirectoryLayout
      Parameters:
      basePath - Wurzelpfad des Archivsystems
      objId - Objekt-ID
      atgId - Attributgruppen-ID
      aspId - Aspekt-ID
      Returns:
      Archiv-Pfad
    • appendIdElements

      public Path appendIdElements(Path basePath, String prefix, long id)
      Zerlegt die numerische ID in Gruppen von jeweils 3 Zeichen in Dezimaldarstellung und ergänzt das übergebene Path-Objekt, sodass die übergebene Separator-/Prefixsequenz hinzugefügt wird. Beispiel: mit "obj" im Parameter prefix führt die ID 12345678 dazu, dass der Pfad "/obj123/obj456/obj78" ergänzt wird.
      Parameters:
      basePath - Basispfad
      prefix - Prefix, das vor jeder Zeichengruppe eingefügt werden soll.
      id - Numerische ID.
      Returns:
      Dateipfad
    • isValidSvFolderName

      public boolean isValidSvFolderName(String dirName)
      Prüft, ob der gegebene Verzeichnisname ein gueltiger Name für ein Verzeichnis ist, das eine Simulationsvariante repraesentiert.
      Parameters:
      dirName - Verzeichnisname
      Returns:
      Wahr, wenn der Verzeichnisname korrekt ist, falsch sonst.
      See Also:
      • SV_DIRNAME_PAT
    • 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
    • getDataIdentificationFromPath

      public IdDataIdentification getDataIdentificationFromPath(List<String> pathStack, int simulationVariant)
      Description copied from interface: PersistenceDirectoryLayout
      Identifiziert die Datenidentifiaktion des angegebenen Verzeichnisses
      Specified by:
      getDataIdentificationFromPath in interface PersistenceDirectoryLayout
      Parameters:
      pathStack - Stack wo man sich im Verzeichnisbaum befindet
      simulationVariant - Simulatiosnvariante
      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