Interface DataIdentificationDirWalk

All Known Implementing Classes:
StandardContainerDirWalk

public interface DataIdentificationDirWalk
Interface für die Durchführung für Aktionen, die Containerdatei-Verzeichnisse in beliebiger Reihenfolge besuchen.

Die Arbeit kann dabei auf mehrere Threads verteilt werden.

  • Method Details

    • allDirectories

      static DataIdentificationDirWalk allDirectories​(PersistenceManager persistenceManager)
      Factory-Methode, die einen DataIdentificationDirWalk erzeugt, der alle im Dateisystem vorhandenen Datenidentifikationsverzeichnisse durchsucht.
      Parameters:
      persistenceManager - PersistenceManager
      Returns:
      Ein Objekt, das die Aktion starten kann
      See Also:
      execute(String, int, DataIdentificationDirAction)
    • parameterized

      static DataIdentificationDirWalk parameterized​(PersistenceManager persistenceManager)
      Factory-Methode, die einen DataIdentificationDirWalk erzeugt, der alle vorhandenen Datenidentifikationsverzeichnisse durchsucht.
      Parameters:
      persistenceManager - PersistenceManager
      Returns:
      Ein Objekt, das die Aktion starten kann
      See Also:
      execute(String, int, DataIdentificationDirAction)
    • create

      static DataIdentificationDirWalk create​(java.nio.file.Path rootDir)
      Factory-Methode, die einen ContainerDirWalk erzeugt, der alle Datenidentifikationsverzeichnisse im angegebenen Wurzelverzeichnis durchsucht.
      Parameters:
      rootDir - Wurzelverzeichnis
      Returns:
      Ein Objekt, das die Aktion starten kann
      See Also:
      execute(String, int, DataIdentificationDirAction)
    • create

      static DataIdentificationDirWalk create​(PersistenceManager persistenceManager, java.util.Collection<? extends de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification> archiveDataSpecifications)
      Factory-Methode, die einen DataIdentificationDirWalk erzeugt, der die in der angegebenen Anfrage enthaltenen Archivdaten-Spezifikationen durchsucht.
      Parameters:
      persistenceManager - PersistenceManager
      archiveDataSpecifications - Anfrage
      Returns:
      Ein Objekt, das die Aktion starten kann
      See Also:
      execute(String, int, DataIdentificationDirAction)
    • getStatusInterval

      java.time.Duration getStatusInterval()
      Gibt das Intervall zurück, in dem Statusmeldungen ausgegeben werden (positiv)
      Returns:
      das Intervall
    • setStatusInterval

      void setStatusInterval​(java.time.Duration statusInterval)
      Setzt das Statusintervall
      Parameters:
      statusInterval - Intervall
    • getStatusPrinter

      StatusPrinter getStatusPrinter()
      Gibt die Klasse zurück, die Statusmeldungen ausgibt.
      Returns:
      Klasse
    • setStatusPrinter

      void setStatusPrinter​(StatusPrinter statusPrinter)
      Setzt die Klasse, die Statusmeldungen schreibt.
      Parameters:
      statusPrinter - Beliebige Subklasse/Instanz von StatusPrinter
    • getPublisherTask

    • setPublisherTask

      void setPublisherTask​(LongTermTaskStatePublisher.Task publisherTask)
    • execute

      void execute​(java.lang.String actionName, int numThreads, DataIdentificationDirAction action) throws PersistenceException
      Führt den Verzeichnisdurchlauf aus. Jedes ContainerDirWalk-Objekt kann nur einmal benutzt werden.
      Parameters:
      actionName - Name (zur Benennung der Thread-Objekte, Ausgabe in Debug-Meldungen usw.)
      numThreads - Anzahl Threads zur Bearbeitung
      action - Durchzuführende Aktion
      Throws:
      PersistenceException - Falls ein Fehler Auftritt
    • collect

      <E> java.util.stream.Stream<E> collect​(java.lang.String actionName, int numThreads, DataIdentificationDirCollector<E> collector) throws PersistenceException
      Führt den Verzeichnisdurchlauf aus. Jedes ContainerDirWalk-Objekt kann nur einmal benutzt werden.
      Type Parameters:
      E - Ergebnistyp, der gesammelt werden soll.
      Parameters:
      actionName - Name (zur Benennung der Thread-Objekte, Ausgabe in Debug-Meldungen usw.)
      numThreads - Anzahl Threads zur Bearbeitung
      collector - Ausdruck, der für jedes Verzeichnis ausgeführt wurd und ein Ergebnis zurückliefert
      Returns:
      Gefundene Objekte
      Throws:
      PersistenceException - Falls ein Fehler Auftritt
    • terminate

      void terminate()
      Sorgt für ein sofortiges, aber kontrolliertes Beenden. Der aktuelle Verzeichnisdurchlauf je Thread wird abgeschlossen.
    • increaseContCount

      void increaseContCount​(int increment)
      Inkrementiert die Anzahl besuchter Container (interne Methode, die von ContainerWalk aufgerufen wird, damit diese Klasse die Anzahl Container für die Ausgabe mit-zählen kann)
      Parameters:
      increment - Anzahl, um die inkrementiert werden soll