1   package org.slf4j.migrator;
2   
3   import java.io.File;
4   import java.util.ArrayList;
5   import java.util.List;
6   
7   import org.slf4j.migrator.internal.ProgressListener;
8   
9   public class FileSelector {
10  
11    private List<File> javaFileList = new ArrayList<File>();
12  
13    ProgressListener pl;
14  
15    FileSelector(ProgressListener pl) {
16      this.pl = pl;
17    }
18  
19    public List<File> selectJavaFilesInFolder(File folder) {
20      if (folder.isDirectory()) {
21        selectFiles(folder);
22        return javaFileList;
23      } else {
24        throw new IllegalArgumentException("[" + folder + "] is not a directory");
25      }
26    }
27  
28    private void selectFiles(File file) {
29      if (file.isDirectory()) {
30        pl.onDirectory(file);
31        File[] files = file.listFiles();
32        if (files != null) {
33          for (int i = 0; i < files.length; i++) {
34            selectFiles(files[i]);
35          }
36        }
37      } else {
38        if (file.getName().endsWith(".java")) {
39          pl.onFileAddition(file);
40          javaFileList.add(file);
41        }
42  
43      }
44    }
45  }