code: @Override
    public List<T> findDatasets() throws IOException {
      List<T> datasets = Lists.newArrayList();
      LOG.info("Finding datasets for pattern " + this.datasetPattern);
  
      FileStatus[] fileStatuss = this.getDatasetDirs();
      if (fileStatuss != null) {
        for (FileStatus fileStatus : fileStatuss) {
          Path pathToMatch = PathUtils.getPathWithoutSchemeAndAuthority(fileStatus.getPath());
          if (this.blacklist.isPresent() && this.blacklist.get().matcher(pathToMatch.toString()).find()) {
            continue;
          }
          if (this.globPatternBlacklist.isPresent() && this.globPatternBlacklist.get().matcher(pathToMatch.toString()).find()) {
            continue;
          }
          LOG.info("Found dataset at " + fileStatus.getPath());
          datasets.add(datasetAtPath(PathUtils.getPathWithoutSchemeAndAuthority(fileStatus.getPath())));
        }
      }
      return datasets;
    }
docs: Finds all directories satisfying the input glob pattern, and creates a {@link org.apache.gobblin.data.management.retention.dataset.CleanableDataset}
  for each one using {@link #datasetAtPath}.
  @return List of {@link org.apache.gobblin.data.management.retention.dataset.CleanableDataset}s in the file system.
  @throws IOException