Class DataIdentificationDirGetter

java.lang.Object
de.bsvrz.ars.ars.persistence.walk.internal.DataIdentificationDirGetter

public final class DataIdentificationDirGetter extends Object
Instanzen dieser Klasse dienen dem StandardDataidentificationDirWalk per Dependency-Injection als Quelle von Datenidentifikationsverzeichnissen.

Durch die Dependency-Injection sind die Typen in dieser Klasse etwas verwirrend. Eine genaue Beschreibung findet sich in der create(Consumer, CountEstimator)-Factory-Methode.

Hintergrund dieser Klasse und der ähnlichen Struktur ist, dass das Auflisten von datenidentifikationsverzeichnissen am effizientesten "aktiv" passiert, d. h. der DataIdentificationDirWalk hat keine Iterator-mäßigen Abfragemethoden, sondern liefert laufend neue Verzeichnisse und übergibt diese als Ereignis an einen DataIdentificationListener.

Diese Klasse erlaubt über Dependency Injection eine Entkoppelung von dieser aktiven Struktur und zudem eine Abschätzung des Datenumfangs mit einem CountEstimator.

  • Method Details

    • create

      public static DataIdentificationDirGetter create(Consumer<DataIdentificationDirListener> directoryGetter, CountEstimator countEstimator)
      Erstellt einen DataIdentificationDirGetter.
      Parameters:
      directoryGetter - Klasse die einen DataIdentificationListener akzeptiert und diesem die gefundenen Containerverzeichnisse übergibt. Das heißt, dieser Parameter ist eine Implementierung, die Datenidentifikationsverzeichnisse liefert, z. B. durch Iteration der Verzeichnisstruktur.
      countEstimator - Klasse, die die gesamte Anzahl der Datenidentifikationsverzeichnisse schätzt.
      Returns:
      Eine neue Instanz
    • run

      public void run(DataIdentificationDirListener listener)
      Führt den Verzeichnisdurchlauf aus. Diese Methode startet den Verzeichnisdurchlauf, indem der beim Erstellen der Instanz angegebene directoryGetter gestartet wird und an ihn der Listener übergeben wird. Der Listener, also der Parameter dieser Methode, bekommt also dann alle gefundenen Datenidentifikationsverzeichnisse nacheinander übergeben.
      Parameters:
      listener - Listener, der Datenidentifikationsverzeichnisse empfängt
    • estimateCount

      public long estimateCount()
      Schätz mithilfe des übergebenen CountEstimator-Objekts die Gesamtzahl aller Datenidentifikationen
      Returns:
      u. U. nicht verlässlicher Schätzwert