- Revision
- 890
- Author
- mauro
- Date
- 2008-08-24 10:48:20 -0500 (Sun, 24 Aug 2008)
Log Message
Minor tidy-up of parser code, using constants where possible to improve readability and performance.
Modified Paths
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PrefixCapturingPatternBuilder.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioClassNameFinder.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioDefiner.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java
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:
