Title: [1017] trunk/jbehave-core/src/java/org/jbehave/scenario/parser: Pulled up common functionality in scenario name resolvers.

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:

http://xircles.codehaus.org/manage_email

Reply via email to