Package io.deephaven.util.files
Class DirWatchService
java.lang.Object
io.deephaven.util.files.DirWatchService
Utilities to assist with file and directory operations.
See MatcherType for details on the matcher types supported.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
static enum
The preferred watcher type is the built-in Java one as it's more efficient, but it doesn't catch all new files -
Constructor Summary
ConstructorDescriptionDirWatchService
(@NotNull String dirToWatch, @NotNull Consumer<DirWatchService.ExceptionConsumerParameter> exceptionConsumer, @NotNull DirWatchService.WatchServiceType watchServiceType, long pollIntervalMillis, @NotNull WatchEvent.Kind... kinds) Constructor to create a directory watch service. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addExactFileWatch
(@NotNull String separator, @NotNull String filePattern, @NotNull BiConsumer<Path, WatchEvent.Kind> consumer) Adds an exact match file pattern to watch for; equivalent to adding with the EXACT_MATCH_WITH_SEPARATOR MatcherTypevoid
addFileWatchAtEnd
(@NotNull Predicate<String> matcher, @NotNull BiConsumer<Path, WatchEvent.Kind> consumer) Adds a file pattern to watch for at the end of the ordered watch listvoid
addFileWatchAtStart
(@NotNull Predicate<String> matcher, @NotNull BiConsumer<Path, WatchEvent.Kind> consumer) Adds a file pattern to watch for at the start of the ordered watch listmakeEndsWithMatcher
(@NotNull String suffix) makeRegexMatcher
(@NotNull String regex) makeStartsWithMatcher
(@NotNull String prefix) void
start()
Starts the watch service thread.void
stop()
Request that the fileWatcher thread stop.
-
Constructor Details
-
DirWatchService
public DirWatchService(@NotNull @NotNull String dirToWatch, @NotNull @NotNull Consumer<DirWatchService.ExceptionConsumerParameter> exceptionConsumer, @NotNull @NotNull DirWatchService.WatchServiceType watchServiceType, long pollIntervalMillis, @NotNull @NotNull WatchEvent.Kind... kinds) Constructor to create a directory watch service. This initializes the instance but doesn't add any watch patterns, and doesn't start the watch thread.- Parameters:
dirToWatch
- Directory to watch for changesexceptionConsumer
- Consumer to accept exceptions if they occur. Even if the watch service has terminated, stop() should be called before restarting it. The exceptionConsumer must accept two arguments - the Exception generated, and a boolean which specifies whether the WatchService has terminated as a result of the exception.watchServiceType
- the watch service type, from the WatchServiceType enumpollIntervalMillis
- for a poll service, the interval between pollskinds
- The kinds of events that may need to be watched from java.nio.file.StandardWatchEventKinds, valid options are: ENTRY_CREATE, ENTRY_DELETE, and ENTRY_MODIFY
-
-
Method Details
-
addExactFileWatch
public void addExactFileWatch(@NotNull @NotNull String separator, @NotNull @NotNull String filePattern, @NotNull @NotNull BiConsumer<Path, WatchEvent.Kind> consumer) Adds an exact match file pattern to watch for; equivalent to adding with the EXACT_MATCH_WITH_SEPARATOR MatcherType- Parameters:
filePattern
- The exact file pattern to watch for (i.e. the part before the separator must match this)consumer
- The consumer to be called when the pattern is matched
-
addFileWatchAtEnd
public void addFileWatchAtEnd(@NotNull @NotNull Predicate<String> matcher, @NotNull @NotNull BiConsumer<Path, WatchEvent.Kind> consumer) Adds a file pattern to watch for at the end of the ordered watch list- Parameters:
matcher
- The filtering predicate, returns true for files that should be consumedconsumer
- Consumer to be called with the file and event type
-
addFileWatchAtStart
public void addFileWatchAtStart(@NotNull @NotNull Predicate<String> matcher, @NotNull @NotNull BiConsumer<Path, WatchEvent.Kind> consumer) Adds a file pattern to watch for at the start of the ordered watch list- Parameters:
matcher
- The filtering predicate, returns true for files that should be consumedconsumer
- Consumer to be called with the file and event type
-
stop
Request that the fileWatcher thread stop. This will not return until the thread has stopped.- Throws:
Exception
-
start
Starts the watch service thread. Even if it's initially empty the service should start as it could get files later.- Throws:
IOException
- from the Java watch serviceException
-
makeRegexMatcher
-
makeStartsWithMatcher
-
makeEndsWithMatcher
-