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 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