Package name.pachler.nio.file

# Interface Watchable

All Known Implementing Classes:
  `Path`, `PathImpl`

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

Modifier and Type
Method
Description
`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 `WatchService`and provides a WatchKey as a handle for that registration.

## Method Details

### register

WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events) throws 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:
  `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 IOException
Registers the file system path (a directory) with the given `WatchService`and 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 `StandardWatchEventKind`and `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.
  invalid reference

      WatchEvent$Modifier

  s 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.
See Also:
  - `StandardWatchEventKind`
  - `ExtendedWatchEventKind`
  - `ExtendedWatchEventModifier`