Title: [890] trunk/jbehave-core/src/java/org/jbehave/scenario/parser: Minor tidy-up of parser code, using constants where possible to improve readability and performance.

Diff

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java (889 => 890)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java	2008-08-24 14:35:48 UTC (rev 889)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java	2008-08-24 15:48:20 UTC (rev 890)
@@ -4,6 +4,8 @@
 
 public class CasePreservingResolver implements ScenarioFileNameResolver {
 
+    private static final String DOT_REGEX = "\\.";
+    private static final String SLASH = "/";
     private final String extension;
 
     public CasePreservingResolver(String extension) {
@@ -11,8 +13,8 @@
     }
 
     public String resolve(Class<? extends Scenario> scenarioClass) {
-        String packageDir = scenarioClass.getPackage().getName().replaceAll("\\.", "/");        
-        return packageDir + "/" + scenarioClass.getSimpleName() + extension;
+        String packageDir = scenarioClass.getPackage().getName().replaceAll(DOT_REGEX, SLASH);        
+        return packageDir + SLASH + scenarioClass.getSimpleName() + extension;
     }
 
 }

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java (889 => 890)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java	2008-08-24 14:35:48 UTC (rev 889)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java	2008-08-24 15:48:20 UTC (rev 890)
@@ -14,7 +14,7 @@
     private static final String PATTERN_TO_PULL_SCENARIOS_INTO_GROUP_4 = ".*?((Scenario:) (.|\\s)*?)\\s*(\\Z|Scenario:).*";
     private static final String PATTERN_TO_PULL_STORY_BLURB_INTO_GROUP_1 = "(.*?)(Scenario:|Given).*";
     private static final String PATTERN_TO_PULL_SCENARIO_TITLE_INTO_GROUP_1 = "Scenario:(.*?)\\s*(Given|When|Then).*";
-    public static final String PATTERN_TO_PULL_OUT_STEPS = "((Given|When|Then) (.|\\s)*?)\\s*(\\Z|Given|When|Then|Scenario:)";
+    private static final String PATTERN_TO_PULL_OUT_STEPS = "((Given|When|Then) (.|\\s)*?)\\s*(\\Z|Given|When|Then|Scenario:)";
 
     private final Pattern pattern;
 
@@ -26,8 +26,7 @@
         this.pattern = Pattern.compile(parseRegex);
     }
 
-    public StoryDefinition defineStoryFrom(String wholeStoryAsString) {
-         
+    public StoryDefinition defineStoryFrom(String wholeStoryAsString) {         
         Blurb blurb = parseBlurbFrom(wholeStoryAsString);
         List<ScenarioDefinition> scenarioDefinitions = parseScenariosFrom(wholeStoryAsString);
         return new StoryDefinition(blurb, scenarioDefinitions);
@@ -35,7 +34,6 @@
 
     private List<ScenarioDefinition> parseScenariosFrom(String wholeStoryAsString) {
         List<ScenarioDefinition> scenarioDefinitions = new ArrayList<ScenarioDefinition>();
-
         List<String> scenarios = splitScenarios(wholeStoryAsString);
         for (String scenario : scenarios) {
             Matcher findingTitle = Pattern.compile(PATTERN_TO_PULL_SCENARIO_TITLE_INTO_GROUP_1, Pattern.DOTALL).matcher(scenario);
@@ -66,8 +64,6 @@
         }
     }
 
-
-
     private List<String> splitScenarios(String allScenariosInFile) {
         Pattern scenarioSplitter = Pattern.compile(PATTERN_TO_PULL_SCENARIOS_INTO_GROUP_4, Pattern.DOTALL);
         Matcher matcher = scenarioSplitter.matcher(allScenariosInFile);

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PrefixCapturingPatternBuilder.java (889 => 890)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PrefixCapturingPatternBuilder.java	2008-08-24 14:35:48 UTC (rev 889)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PrefixCapturingPatternBuilder.java	2008-08-24 15:48:20 UTC (rev 890)
@@ -14,7 +14,7 @@
  */
 public class PrefixCapturingPatternBuilder implements StepPatternBuilder {
 
-    private String anyWordBeginningWithThePrefix = "(\\$\\w*)(\\W|\\Z)";
+    private final String anyWordBeginningWithThePrefix;
 
     /**
      * Creates a pattern which captures arguments starting with $ in

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioClassNameFinder.java (889 => 890)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioClassNameFinder.java	2008-08-24 14:35:48 UTC (rev 889)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioClassNameFinder.java	2008-08-24 15:48:20 UTC (rev 890)
@@ -14,9 +14,11 @@
  */
 public class ScenarioClassNameFinder {
 
-    /**
-     * Scanner used to list paths
-     */
+    private static final String JAVA = ".java";
+    private static final String EMPTY = "";
+    private static final String DOT_REGEX = "\\.";
+    private static final String SLASH = "/";
+
     private DirectoryScanner scanner = new DirectoryScanner();
 
     /**
@@ -41,10 +43,10 @@
     }
 
     private String classNameFor(String path) {
-        int javaPath = path.indexOf(".java");
+        int javaPath = path.indexOf(JAVA);
         if ( javaPath != -1 ){
             String className = path.substring(0, javaPath);
-            return className.replaceAll("/", "\\.");            
+            return className.replaceAll(SLASH, DOT_REGEX);            
         }
         throw new InvalidScenarioClassPathException("Invalid scenario class path "+path);
     }
@@ -62,7 +64,7 @@
             scanner.setExcludes(excludes.toArray(new String[excludes.size()]));
         }
         scanner.scan();
-        String basePath = (rootPath != null ? rootPath + "/" : "");
+        String basePath = (rootPath != null ? rootPath + SLASH : EMPTY);
         for (String relativePath : scanner.getIncludedFiles()) {
             String path = basePath + relativePath;
             paths.add(path);

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefiner.java (889 => 890)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefiner.java	2008-08-24 14:35:48 UTC (rev 889)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefiner.java	2008-08-24 15:48:20 UTC (rev 890)
@@ -5,6 +5,6 @@
 
 public interface ScenarioDefiner {
 
-    StoryDefinition loadScenarioDefinitionsFor(Class<? extends Scenario> clazz);
+    StoryDefinition loadScenarioDefinitionsFor(Class<? extends Scenario> scenarioClass);
 
 }
\ No newline at end of file

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java (889 => 890)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java	2008-08-24 14:35:48 UTC (rev 889)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java	2008-08-24 15:48:20 UTC (rev 890)
@@ -7,6 +7,9 @@
 
 public class UnderscoredCamelCaseResolver implements ScenarioFileNameResolver {
 
+    private static final String DOT_REGEX = "\\.";
+    private static final String SLASH = "/";
+    private static final String PATTERN = "([A-Z].*?)([A-Z]|\\z)";
     private static final String UNDERSCORE = "_";
     private final String extension;
 
@@ -19,10 +22,8 @@
     }
 
     public String resolve(Class<? extends Scenario> scenarioClass) {
-
-        String packageDir = scenarioClass.getPackage().getName().replaceAll("\\.", "/");
-        
-        Matcher matcher = Pattern.compile("([A-Z].*?)([A-Z]|\\z)").matcher(scenarioClass.getSimpleName());
+        String packageDir = scenarioClass.getPackage().getName().replaceAll(DOT_REGEX, SLASH);        
+        Matcher matcher = Pattern.compile(PATTERN).matcher(scenarioClass.getSimpleName());
         int startAt = 0;
         StringBuilder builder = new StringBuilder();
         while(matcher.find(startAt)) {
@@ -32,7 +33,7 @@
         }
         
         String underscoredName = builder.substring(0, builder.length() - 1);
-        return packageDir + "/" + underscoredName + extension;
+        return packageDir + SLASH + underscoredName + extension;
     }
 
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to