code: public void addWatcher(Path file, Listener watcher) {
          if (file == null) throw new IllegalArgumentException("Null file argument");
          if (watcher == null) throw new IllegalArgumentException("Null watcher argument");
          synchronized (mutex) {
              startWatchingInternal(file).add(() -> watcher);
          }
      }
docs: Start watching file path and notify watcher for updates on that file.
  
  @param file The file path to watch.
  @param watcher The watcher to be notified.