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 }