name.pachler.nio.file
Interface Watchable

All Known Implementing Classes:
Path

public interface Watchable

A watchable is an object that can be registered with a WatchService to be monitored for changes via it's register methods. The watchable only defines an interface, use Path to actually watch directories.


Method Summary
 WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events)
          Registers the file system path (a directory) with the given WatchService and provides a WatchKey as a handle for that registration.
 WatchKey register(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers)
          Registers the file system path (a directory) with the given WatchServiceand provides a WatchKey as a handle for that registration.
 

Method Detail

register

WatchKey register(WatchService watcher,
                  WatchEvent.Kind<?>... events)
                  throws java.io.IOException
Registers the file system path (a directory) with the given WatchService and provides a WatchKey as a handle for that registration. Equivalent to calling register(watcher, events, new WatchEvent.Modifier[0]);

Throws:
java.io.IOException
See Also:
Path.register(name.pachler.nio.file.WatchService, name.pachler.nio.file.WatchEvent.Kind[], name.pachler.nio.file.WatchEvent.Modifier[])

register

WatchKey register(WatchService watcher,
                  WatchEvent.Kind<?>[] events,
                  WatchEvent.Modifier... modifiers)
                  throws java.io.IOException
Registers the file system path (a directory) with the given WatchServiceand provides a WatchKey as a handle for that registration. The events and modifier lists determine the events that the WatchService will report.
If a path instance is passed in that represents the same file system object that has been specified in a previous call to this method with the same WatchService, the same WatchKey will be returned. In this case, the WatchKey's watch settings are altered to match the new event and modifier lists. Note that such changes may result in StandardWatchEventKind.OVERFLOW events to be reported on some platforms.
Not all event kinds and modifiers defined in StandardWatchEventKind, ExtendedWatchEventKind and ExtendedWatchEventModifier may be supported on a target platform (typically though, in this implementation, all event kinds defined in StandardWatchEventKind are always supported).

Parameters:
watcher - a valid WatchService instance.
events - The events to register for. The event kinds defined in StandardWatchEventKindand ExtendedWatchEventKind define valid event kinds that can be passed in here. Not that not all event kinds may be supported on a given platform, so see the documentation of a specific event kind.
modifiers - The event modifiers to use when registering. WatchEvent.Modifiers define special behaviour that's expected from the WatchService. Note that some event modifiers may not be supported on a given platform; see the specific modifier for details.
Returns:
a new WatchKey that represents the registration.
Throws:
java.lang.UnsupportedOperationException - If unsupported event kinds have been provided
java.lang.IllegalArgumentException - If an unsupported combination of event kinds has been provided
ClosedWatchServiceException - If the given WatchService is already closed.
NotDirectoryException - If a directory is required for the given registration options (which is typically the case) and the path instance does not reference a directory
java.io.IOException - for general I/O errors
See Also:
StandardWatchEventKind, ExtendedWatchEventKind, ExtendedWatchEventModifier