github.phpd.cn/thought-machine/please@v12.2.0+incompatible/tools/javac_worker/src/build/please/compile/FileFinder.java (about)

     1  package build.please.compile;
     2  
     3  import java.nio.file.FileVisitResult;
     4  import java.nio.file.Path;
     5  import java.nio.file.SimpleFileVisitor;
     6  import java.nio.file.attribute.BasicFileAttributes;
     7  import java.util.LinkedList;
     8  import java.util.List;
     9  
    10  import static java.nio.file.FileVisitResult.CONTINUE;
    11  
    12  class FileFinder extends SimpleFileVisitor<Path> {
    13  
    14    private final String extension;
    15    private final List<String> files = new LinkedList<>();
    16  
    17    public FileFinder(String extension) {
    18      this.extension = extension;
    19    }
    20  
    21    @Override
    22    public FileVisitResult visitFile(Path path, BasicFileAttributes attr) {
    23      if (path.toString().endsWith(extension)) {
    24        files.add(path.toString());
    25      }
    26      return CONTINUE;
    27    }
    28  
    29    public List<String> getFiles() {
    30      return files;
    31    }
    32  
    33    /**
    34     * Returns the list of files, joined by the given delimiter.
    35     */
    36    public String joinFiles(char delimiter) {
    37      if (files.isEmpty()) {
    38        return "";
    39      }
    40      StringBuilder sb = new StringBuilder();
    41      for (String file : files) {
    42        sb.append(file);
    43        sb.append(delimiter);
    44      }
    45      sb.deleteCharAt(sb.length() - 1);
    46      return sb.toString();
    47    }
    48  }