code: public void checkAndNotify()
        throws IOException {
      /* fire onStart() */
      for (final PathAlterationListener listener : listeners.values()) {
        listener.onStart(this);
      }
  
      /* fire directory/file events */
      final Path rootPath = rootEntry.getPath();
  
      if (fs.exists(rootPath)) {
        // Current existed.
        checkAndNotify(rootEntry, rootEntry.getChildren(), listPaths(rootPath));
      } else if (rootEntry.isExists()) {
        // Existed before and not existed now.
        checkAndNotify(rootEntry, rootEntry.getChildren(), EMPTY_PATH_ARRAY);
      } else {
        // Didn't exist and still doesn't
      }
  
      /* fire onStop() */
      for (final PathAlterationListener listener : listeners.values()) {
        listener.onStop(this);
      }
    }
docs: Check whether the file and its chlidren have been created, modified or deleted.