Klasse TimeDomain<T extends TimeRange<T>>

java.lang.Object
com.google.common.collect.DiscreteDomain<T>
de.bsvrz.ars.ars.persistence.directories.mgmt.range.TimeDomain<T>
Typparameter:
T - Typ der einzelnen Zeitintervalle, z. B. Week
Bekannte direkte Unterklassen:
WeekDomain

public abstract class TimeDomain<T extends TimeRange<T>> extends com.google.common.collect.DiscreteDomain<T>
Basisklasse für einen diskreten Typ für Zeitbereiche (z. B. Wochen) für die Wochenverzeichnisse.

Diese Klasse ermittelt zu einem Zeitstempel den zugehörigen Zeitbereich und konvertiert diesen in eine Ordnerstruktur bzw. erlaubt es umgekehrt, basierend auf einer gegebenen Ordnerstruktur das zugehörige Zeitintervall (also z. B.die Woche) zu ermitteln.

  • Konstruktorübersicht

    Konstruktoren
    Konstruktor
    Beschreibung
     
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    getIntervals(com.google.common.collect.Range<Instant> timeRange)
    Ermittelt zu einem absoluten Zeitbereich (gegeben durch 2 Instant-Objekte) die Liste mit Intervallen, in diesem Bereich.
    abstract int
    Gibt die Maximaltiefe der Ordnerstruktur zurück, die diese TimeDomain verwendet.
    abstract Path
    getPath(T timeRange)
    Gibt zu einem gegebenen Zeitintervall den Pfad zurück, indem Daten dieses Zeitintervalls gespeichert werden sollen.
    abstract T
    ofEpochMillis(long epochMillis)
    Gibt zu einem Zeitpunkt, das Intervall zurück, das diesen Zeitpunkt enthält.
    abstract T
    ofPath(Path relativePath)
    Gibt zu einer relativen Ordnerstruktur das zugehörige Zeitintervall zurück.

    Von Klasse geerbte Methoden com.google.common.collect.DiscreteDomain

    bigIntegers, distance, integers, longs, maxValue, minValue, next, previous

    Von Klasse geerbte Methoden java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Konstruktordetails

    • TimeDomain

      public TimeDomain()
  • Methodendetails

    • getIntervals

      public List<T> getIntervals(@NotNull com.google.common.collect.Range<Instant> timeRange)
      Ermittelt zu einem absoluten Zeitbereich (gegeben durch 2 Instant-Objekte) die Liste mit Intervallen, in diesem Bereich. Die zurückgegebene Liste ist unveränderlich.
      Parameter:
      timeRange - Zeitbereich
      Gibt zurück:
      Intervalle
    • ofEpochMillis

      @Contract(pure=true) @NotNull public abstract T ofEpochMillis(long epochMillis)
      Gibt zu einem Zeitpunkt, das Intervall zurück, das diesen Zeitpunkt enthält.
      Parameter:
      epochMillis - Zeitpunkt in Epoch-Millis
      Gibt zurück:
      zu einem Zeitpunkt, das Intervall
    • ofPath

      @Contract(pure=true) @Nullable public abstract T ofPath(Path relativePath)
      Gibt zu einer relativen Ordnerstruktur das zugehörige Zeitintervall zurück.

      Beispielsweise könnte ofPath(Path.of("2021", "2021-01-01")); die Woche oder den Monat zurückgeben, der am 01. 01. 2021 anliegt.

      Handelt es sich um keine bekannte Ordnerstruktur, kann null zurückgegeben werden.

      Parameter:
      relativePath - Pfad, der relativ sein muss
      Gibt zurück:
      zu einem Zeitpunkt, das Intervall
    • getPath

      @Contract(pure=true) @NotNull public abstract Path getPath(T timeRange)
      Gibt zu einem gegebenen Zeitintervall den Pfad zurück, indem Daten dieses Zeitintervalls gespeichert werden sollen. Dieser Pfad muss zu jedem möglichen Zeitintervall eindeutig sein, sonst könnte die umgekehrte Operation ofPath(Path) nicht funktionieren.
      Parameter:
      timeRange - Zeitbereich
      Gibt zurück:
      Pfad
    • getMaxDepth

      public abstract int getMaxDepth()
      Gibt die Maximaltiefe der Ordnerstruktur zurück, die diese TimeDomain verwendet. Wenn z. B. Daten in Jahresverzeichnissen und darunter in Wochenverzeichnissen gespeichert werden sollen, mull 2 zurückgegeben werden. Innerhalb dieser Tiefe sucht das Archivsystem nach gültigen Persistenzverzeichnissen.
      Gibt zurück:
      Maximaltiefe