IncludesFinder.java

  1. package com.github.casperjs.casperjsrunner;

  2. import static com.github.casperjs.casperjsrunner.LogUtils.getLogger;
  3. import static java.util.Arrays.asList;

  4. import org.codehaus.plexus.util.DirectoryScanner;

  5. import java.io.File;
  6. import java.util.Collections;
  7. import java.util.List;

  8. public class IncludesFinder {

  9.     private final File baseDir;

  10.     private final List<String> patterns;

  11.     public IncludesFinder(final File baseDir, final List<String> patterns) {
  12.         if (patterns == null || patterns.isEmpty()) {
  13.             throw new IllegalArgumentException("Patterns to search must be defined !");
  14.         }
  15.         this.baseDir = baseDir;
  16.         this.patterns = patterns;
  17.     }

  18.     public List<String> findIncludes() {
  19.         getLogger().info("Looking for includes in " + baseDir + "...");

  20.         final DirectoryScanner scanner = new DirectoryScanner();
  21.         scanner.setCaseSensitive(false);
  22.         scanner.setBasedir(baseDir);
  23.         scanner.setIncludes(patterns.toArray(new String[patterns.size()]));
  24.         scanner.scan();

  25.         final List<String> result = asList(scanner.getIncludedFiles());
  26.         Collections.sort(result);
  27.         return result;
  28.     }

  29. }