private void processFile(
@NonNull final File rootFolder,
@NonNull final File file,
@NonNull final SourceFileProcessor processor)
throws ProcessException, IOException {
if (file.isFile()) {
if (checkExtension(file)) {
if (mExecutor != null) {
mExecutor.execute(new Callable<Void>() {
@Override
public Void call() throws Exception {
processor.processFile(rootFolder, file);
return null;
}
});
} else {
processor.processFile(rootFolder, file);
}
}
} else if (file.isDirectory()) {
File[] children = file.listFiles();
if (children != null) {
for (File child : children) {
processFile(rootFolder, child, processor);
}
}
}
}