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 Summary
Modifier and Type Method Description static DataIdentificationDirWalk
allDirectories(PersistenceManager persistenceManager)
Factory-Methode, die einen DataIdentificationDirWalk erzeugt, der alle im Dateisystem vorhandenen Datenidentifikationsverzeichnisse durchsucht.<E> java.util.stream.Stream<E>
collect(java.lang.String actionName, int numThreads, DataIdentificationDirCollector<E> collector)
Führt den Verzeichnisdurchlauf aus.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.static DataIdentificationDirWalk
create(java.nio.file.Path rootDir)
Factory-Methode, die einen ContainerDirWalk erzeugt, der alle Datenidentifikationsverzeichnisse im angegebenen Wurzelverzeichnis durchsucht.void
execute(java.lang.String actionName, int numThreads, DataIdentificationDirAction action)
Führt den Verzeichnisdurchlauf aus.LongTermTaskStatePublisher.Task
getPublisherTask()
java.time.Duration
getStatusInterval()
Gibt das Intervall zurück, in dem Statusmeldungen ausgegeben werden (positiv)StatusPrinter
getStatusPrinter()
Gibt die Klasse zurück, die Statusmeldungen ausgibt.void
increaseContCount(int increment)
Inkrementiert die Anzahl besuchter Container (interne Methode, die vonContainerWalk
aufgerufen wird, damit diese Klasse die Anzahl Container für die Ausgabe mit-zählen kann)static DataIdentificationDirWalk
parameterized(PersistenceManager persistenceManager)
Factory-Methode, die einen DataIdentificationDirWalk erzeugt, der alle vorhandenen Datenidentifikationsverzeichnisse durchsucht.void
setPublisherTask(LongTermTaskStatePublisher.Task publisherTask)
void
setStatusInterval(java.time.Duration statusInterval)
Setzt das Statusintervallvoid
setStatusPrinter(StatusPrinter statusPrinter)
Setzt die Klasse, die Statusmeldungen schreibt.void
terminate()
Sorgt für ein sofortiges, aber kontrolliertes Beenden.
-
Method Details
-
allDirectories
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
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
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
- PersistenceManagerarchiveDataSpecifications
- 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
Setzt die Klasse, die Statusmeldungen schreibt.- Parameters:
statusPrinter
- Beliebige Subklasse/Instanz vonStatusPrinter
-
getPublisherTask
LongTermTaskStatePublisher.Task getPublisherTask() -
setPublisherTask
-
execute
void execute(java.lang.String actionName, int numThreads, DataIdentificationDirAction action) throws PersistenceExceptionFü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 Bearbeitungaction
- 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 PersistenceExceptionFü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 Bearbeitungcollector
- 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 vonContainerWalk
aufgerufen wird, damit diese Klasse die Anzahl Container für die Ausgabe mit-zählen kann)- Parameters:
increment
- Anzahl, um die inkrementiert werden soll
-