- Revision
- 1017
- Author
- mauro
- Date
- 2008-12-26 09:58:43 -0600 (Fri, 26 Dec 2008)
Log Message
Pulled up common functionality in scenario name resolvers.
Modified Paths
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java
- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java
Diff
Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java (1016 => 1017)
--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java 2008-12-14 22:30:37 UTC (rev 1016) +++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java 2008-12-26 15:58:43 UTC (rev 1017) @@ -1,19 +1,41 @@ package org.jbehave.scenario.parser; +import static java.text.MessageFormat.format; + import org.jbehave.scenario.RunnableScenario; -public abstract class AbstractScenarioNameResolver implements ScenarioNameResolver { +public abstract class AbstractScenarioNameResolver implements + ScenarioNameResolver { static final String DOT_REGEX = "\\."; - static final String SLASH = "/"; + static final String SLASH = "/"; static final String EMPTY = ""; + static final String DEFAULT_EXTENSION = ""; + static final String PATH_PATTERN = "{0}/{1}{2}"; - protected String toPackageDir(Class<? extends RunnableScenario> scenarioClass) { + private final String extension; + + protected AbstractScenarioNameResolver() { + this(DEFAULT_EXTENSION); + } + + protected AbstractScenarioNameResolver(String extension) { + this.extension = extension; + } + + public String resolve(Class<? extends RunnableScenario> scenarioClass) { + return format(PATH_PATTERN, resolveDirectoryName(scenarioClass), resolveFileName(scenarioClass), extension); + } + + protected String resolveDirectoryName( + Class<? extends RunnableScenario> scenarioClass) { Package scenarioPackage = scenarioClass.getPackage(); - if ( scenarioPackage != null ){ - return scenarioPackage.getName().replaceAll(DOT_REGEX, SLASH); + if (scenarioPackage != null) { + return scenarioPackage.getName().replaceAll(DOT_REGEX, SLASH); } return EMPTY; } + protected abstract String resolveFileName(Class<? extends RunnableScenario> scenarioClass); + } \ No newline at end of file
Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java (1016 => 1017)
--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java 2008-12-14 22:30:37 UTC (rev 1016) +++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java 2008-12-26 15:58:43 UTC (rev 1017) @@ -2,6 +2,7 @@ import org.jbehave.scenario.RunnableScenario; + /** * <p> * Resolves scenario names while preserving the Java scenario class case eg: @@ -15,14 +16,17 @@ */ public class CasePreservingResolver extends AbstractScenarioNameResolver { - private final String extension; + public CasePreservingResolver() { + super(); + } public CasePreservingResolver(String extension) { - this.extension = extension; + super(extension); } - public String resolve(Class<? extends RunnableScenario> scenarioClass) { - return toPackageDir(scenarioClass) + SLASH + scenarioClass.getSimpleName() + extension; - } + @Override + protected String resolveFileName(Class<? extends RunnableScenario> scenarioClass) { + return scenarioClass.getSimpleName(); + } }
Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java (1016 => 1017)
--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java 2008-12-14 22:30:37 UTC (rev 1016) +++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java 2008-12-26 15:58:43 UTC (rev 1017) @@ -18,25 +18,20 @@ */ public class UnderscoredCamelCaseResolver extends AbstractScenarioNameResolver { - private static final String DEFAULT_EXTENSION = ""; private static final String SIMPLE_TO_UNDERSCORED_PATTERN = "([A-Z0-9].*?)([A-Z0-9]|\\z)"; private static final String UNDERSCORE = "_"; - private final String extension; public UnderscoredCamelCaseResolver() { - this(DEFAULT_EXTENSION); + super(); } public UnderscoredCamelCaseResolver(String extension) { - this.extension = extension; + super(extension); } - public String resolve(Class<? extends RunnableScenario> scenarioClass) { - return toPackageDir(scenarioClass) + SLASH + toUnderscoredName(scenarioClass.getSimpleName()) + extension; - } - - private String toUnderscoredName(String simpleName) { - Matcher matcher = Pattern.compile(SIMPLE_TO_UNDERSCORED_PATTERN).matcher(simpleName); + @Override + protected String resolveFileName(Class<? extends RunnableScenario> scenarioClass) { + Matcher matcher = Pattern.compile(SIMPLE_TO_UNDERSCORED_PATTERN).matcher(scenarioClass.getSimpleName()); int startAt = 0; StringBuilder builder = new StringBuilder(); while (matcher.find(startAt)) {
To unsubscribe from this list please visit:
