package cmu.defect4j;
import java.io.File;
import java.util.LinkedList;
/**
* @author: chupanw
*/
public class FileDetector {
private LinkedList<File> fileList = new LinkedList<File>();
private String fileType = null;
public FileDetector() {
}
public FileDetector(String fileType) {
this.fileType = fileType;
}
private File[] listFiles(String absoluteFilePath) {
File dir = new File(absoluteFilePath);
return dir.listFiles();
}
public File[] detect(String absoluteFilePath) {
File[] files = listFiles(absoluteFilePath);
if (files != null)
classifyFileAndDirectory(files);
return fileList.toArray(new File[fileList.size()]);
}
private void classifyFileAndDirectory(File[] files) {
for (File file : files) {
if (file.isDirectory())
detect(file.getAbsolutePath());
else
addFile(file);
}
}
private void addFile(File file) {
if (fileType == null)
fileList.add(file);
else
addFileBySuffix(file);
}
private void addFileBySuffix(File file) {
if (file.getName().endsWith(fileType))
fileList.addLast(file);
}
}