PatternsChecker.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 java.util.ArrayList;
  5. import java.util.List;

  6. public class PatternsChecker {

  7.     private static final String[] DEFAULT_JS_PATTERNS = { "**/Test*.js", "**/*Test.js", "**/*TestCase.js" };

  8.     private static final String[] DEFAULT_CS_PATTERNS = { "**/Test*.coffee", "**/*Test.coffee", "**/*TestCase.coffee" };

  9.     private PatternsChecker() {
  10.         // only used as static
  11.     }

  12.     public static List<String> checkPatterns(final List<String> patterns, final boolean includeJS, final boolean includeCS) {
  13.         if (!includeJS) {
  14.             getLogger().info("JavaScript files ignored");
  15.         }
  16.         if (!includeCS) {
  17.             getLogger().info("CoffeeScript files ignored");
  18.         }

  19.         if (patterns == null || patterns.isEmpty()) {
  20.             return computeDefaultPatterns(includeJS, includeCS);
  21.         } else {
  22.             return computePatterns(patterns, includeJS, includeCS);
  23.         }
  24.     }

  25.     private static List<String> computeDefaultPatterns(final boolean includeJS, final boolean includeCS) {
  26.         final List<String> result = new ArrayList<String>();

  27.         if (includeCS) {
  28.             result.addAll(asList(DEFAULT_CS_PATTERNS));
  29.         }
  30.         if (includeJS) {
  31.             result.addAll(asList(DEFAULT_JS_PATTERNS));
  32.         }

  33.         return result;
  34.     }

  35.     private static List<String> computePatterns(final List<String> patterns, final boolean includeJS, final boolean includeCS) {
  36.         final List<String> result = new ArrayList<String>();

  37.         for (final String pattern : patterns) {
  38.             if (pattern.endsWith(".coffee")) {
  39.                 if (includeCS) {
  40.                     result.add(pattern);
  41.                 }
  42.             } else if (pattern.endsWith(".js")) {
  43.                 if (includeJS) {
  44.                     result.add(pattern);
  45.                 }
  46.             } else {
  47.                 result.add(pattern);
  48.             }
  49.         }

  50.         return result;
  51.     }
  52. }