package org.codehaus.mojo.rspec; import java.io.File; import java.io.FileWriter; import java.util.List; import java.util.Properties; public abstract class AbstractScriptFactory implements ScriptFactory { protected List<String> classpathElements; protected File outputDir; protected String baseDir; protected String sourceDir; protected String reportPath; protected Properties systemProperties; public void setClasspathElements(List<String> classpathElements) { this.classpathElements = classpathElements; } public void setOutputDir(File outputDir) { this.outputDir = outputDir; } public void setBaseDir(String baseDir) { this.baseDir = baseDir; } public void setSourceDir(String sourceDir) { this.sourceDir = sourceDir; } public void setReportPath(String reportPath) { this.reportPath = reportPath; } public void setSystemProperties(Properties systemProperties) { this.systemProperties = systemProperties; } protected abstract String getScriptName(); public void emit() throws Exception { String script = getScript(); File scriptFile = new File( outputDir, getScriptName() ); FileWriter out = new FileWriter( scriptFile ); try { out.write( script ); } finally { if ( out != null ) { out.close(); } } scriptFile.setExecutable(true); } }