code: @SuppressWarnings("all")
      public static List<File> listFiles(final File fileOrDir,
                                         final List<Filter<File>> fileFilters,
                                         final boolean excludeFilterOperation,
                                         final Log log) {
  
          // Check sanity
          Validate.notNull(log, "log");
          Validate.notNull(fileFilters, "fileFilters");
          final List<File> toReturn = new ArrayList<File>();
  
          if (EXISTING_FILE.accept(fileOrDir)) {
              checkAndAdd(toReturn, fileOrDir, fileFilters, excludeFilterOperation, log);
          } else if (EXISTING_DIRECTORY.accept(fileOrDir)) {
  
              final File[] listedFiles = fileOrDir.listFiles();
  
              if (listedFiles != null) {
                  for (File current : listedFiles) {
  
                      // Typically, hidden directories start with '.'
                      // Except them from automagic filtering.
                      if (current.getName().charAt(0) != '.') {
                          checkAndAdd(toReturn, current, fileFilters, excludeFilterOperation, log);
                      }
                  }
              }
          }
  
          // All done.
          return toReturn;
      }
docs: If the supplied fileOrDir is a File, it is added to the returned List if any of the filters Match.
  If the supplied fileOrDir is a Directory, it is listed and any of the files immediately within the fileOrDir
  directory are returned within the resulting List provided that they match any of the supplied filters.
  
  @param fileOrDir              A File or Directory.
  @param fileFilters            A List of filter of which at least one must match to add the File (or child Files, in case
  of a directory) to the resulting List.
  @param excludeFilterOperation if {@code true}, all fileFilters are considered exclude filter, i.e. if
  any of the Filters match the fileOrDir, that fileOrDir will be excluded from the
  result.
  @param log                    The active Maven Log
  @return A List holding the supplied File (or child Files, in case fileOrDir is a Directory) given that at
  least one Filter accepts them.