protected <T> void recurseOnDirectory( final Queue<Tuple<File, Future<T>>> futures, final ConcurrentMap<File, T> results, final File directory, final FileFilter fileFilter, final Function<Resource, T> fileProcessor) { logger.debug("processing directory: {}", directory); final File[] children = directory.listFiles(fileFilter); for (final File child : children) { // If the child is a directory and recursion is on recurse on it if (child.isDirectory()) { if (recursive) { if (processDirectories) { submitProcessFile(futures, child, fileProcessor); } submitDirectoryRecurse(futures, results, child, fileFilter, fileProcessor); } } // Otherwise pass the file into the fileHandler via the executor service else { submitProcessFile(futures, child, fileProcessor); } } // Clean up any completed futures from the queue cleanFutures(futures, results); }
protected <T> void recurseOnDirectory( final Queue<Tuple<File, Future<T>>> futures, final ConcurrentMap<File, T> results, final File directory, final FileFilter fileFilter, final Function<Resource, T> fileProcessor) { logger.debug("processing directory: {}", directory); final File[] children = directory.listFiles(fileFilter); for (final File child : children) { // If the child is a directory and recursion is on recurse on it if (child.isDirectory()) { if (recursive) { if (processDirectories) { submitProcessFile(futures, child, fileProcessor); } submitDirectoryRecurse(futures, results, child, fileFilter, fileProcessor); } } // Otherwise pass the file into the fileHandler via the executor service else { submitProcessFile(futures, child, fileProcessor); } } // Clean up any completed futures from the queue cleanFutures(futures, results); }