code: private void _registerDirRecursive (@Nonnull final Path aStartDir) throws IOException
    {
      // register directory and sub-directories
      Files.walkFileTree (aStartDir, new SimpleFileVisitor <Path> ()
      {
        @Override
        public FileVisitResult preVisitDirectory (final Path dir, final BasicFileAttributes attrs) throws IOException
        {
          _registerDir (dir);
          return FileVisitResult.CONTINUE;
        }
      });
    }
docs: Register the given directory, and all its sub-directories, with the
  WatchService.
  
  @param aStartDir
  The start directory to be iterated. May not be <code>null</code>.