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 DataIdentificationDirWalkallDirectories(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 DataIdentificationDirWalkcreate(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 DataIdentificationDirWalkcreate(java.nio.file.Path rootDir)Factory-Methode, die einen ContainerDirWalk erzeugt, der alle Datenidentifikationsverzeichnisse im angegebenen Wurzelverzeichnis durchsucht.voidexecute(java.lang.String actionName, int numThreads, DataIdentificationDirAction action)Führt den Verzeichnisdurchlauf aus.LongTermTaskStatePublisher.TaskgetPublisherTask()java.time.DurationgetStatusInterval()Gibt das Intervall zurück, in dem Statusmeldungen ausgegeben werden (positiv)StatusPrintergetStatusPrinter()Gibt die Klasse zurück, die Statusmeldungen ausgibt.voidincreaseContCount(int increment)Inkrementiert die Anzahl besuchter Container (interne Methode, die vonContainerWalkaufgerufen wird, damit diese Klasse die Anzahl Container für die Ausgabe mit-zählen kann)static DataIdentificationDirWalkparameterized(PersistenceManager persistenceManager)Factory-Methode, die einen DataIdentificationDirWalk erzeugt, der alle vorhandenen Datenidentifikationsverzeichnisse durchsucht.voidsetPublisherTask(LongTermTaskStatePublisher.Task publisherTask)voidsetStatusInterval(java.time.Duration statusInterval)Setzt das StatusintervallvoidsetStatusPrinter(StatusPrinter statusPrinter)Setzt die Klasse, die Statusmeldungen schreibt.voidterminate()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 vonContainerWalkaufgerufen wird, damit diese Klasse die Anzahl Container für die Ausgabe mit-zählen kann)- Parameters:
increment- Anzahl, um die inkrementiert werden soll
-