diff --git a/code-gen/src/main/java/com/wordnik/codegen/DriverCodeGenerator.java b/code-gen/src/main/java/com/wordnik/codegen/DriverCodeGenerator.java index eaaf1f9a0e5..a4f1df3cda8 100644 --- a/code-gen/src/main/java/com/wordnik/codegen/DriverCodeGenerator.java +++ b/code-gen/src/main/java/com/wordnik/codegen/DriverCodeGenerator.java @@ -4,6 +4,7 @@ import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.wordnik.codegen.config.CodeGenConfig; +import com.wordnik.codegen.config.GenerationEnvironmentConfig; import com.wordnik.codegen.resource.*; import com.wordnik.exception.CodeGenerationException; @@ -37,6 +38,7 @@ public class DriverCodeGenerator { private static final String API_LISTING_URL = "apiListResource"; private CodeGenConfig config = null; + private GenerationEnvironmentConfig envConfig = null; private String baseUrl; private String apiKey; private String apiListResource; @@ -49,6 +51,14 @@ public class DriverCodeGenerator { this.config = config; } + public GenerationEnvironmentConfig getEnvConfig() { + return envConfig; + } + + public void setEnvConfig(GenerationEnvironmentConfig config) { + this.envConfig = config; + } + /** * Generate classes needed for the model and API invocation */ @@ -56,7 +66,7 @@ public class DriverCodeGenerator { readApiConfig(); //read resources and get their documentation List resources = this.readResourceDocumentation(baseUrl); - StringTemplateGroup aTemplateGroup = new StringTemplateGroup("templates",config.getTemplateLocation()); + StringTemplateGroup aTemplateGroup = new StringTemplateGroup("templates",envConfig.getTemplateLocation()); if(resources.size() > 0) { generateVersionHelper(resources.get(0).getApiVersion(), aTemplateGroup); } @@ -208,7 +218,7 @@ public class DriverCodeGenerator { private void generateVersionHelper(String version, StringTemplateGroup templateGroup) { StringTemplate template = templateGroup.getInstanceOf(VERSION_OBJECT_TEMPLATE); template.setAttribute("apiVersion", version); - File aFile = new File(config.getResourceClassLocation() + config.getNameGenerator().getVersionCheckerClassName() + File aFile = new File(envConfig.getResourceClassLocation() + config.getNameGenerator().getVersionCheckerClassName() + config.getClassFileExtension()); writeFile(aFile, template.toString(), "Version checker class"); } @@ -236,7 +246,7 @@ public class DriverCodeGenerator { template.setAttribute("imports", imports); template.setAttribute("extends", config.getCodeGenOverridingRules().getModelExtendingClass()); template.setAttribute("className", model.getGenratedClassName()); - File aFile = new File(config.getModelClassLocation()+model.getGenratedClassName()+config.getClassFileExtension()); + File aFile = new File(envConfig.getModelClassLocation()+model.getGenratedClassName()+config.getClassFileExtension()); writeFile(aFile, template.toString(), "Model class"); generatedClassNames.add(model.getName()); } @@ -278,7 +288,7 @@ public class DriverCodeGenerator { template.setAttribute("imports", imports); template.setAttribute("extends", config.getCodeGenOverridingRules().getModelExtendingClass()); template.setAttribute("className", model.getGenratedClassName()); - File aFile = new File(config.getModelClassLocation()+model.getGenratedClassName()+config.getClassFileExtension()); + File aFile = new File(envConfig.getModelClassLocation()+model.getGenratedClassName()+config.getClassFileExtension()); writeFile(aFile, template.toString(), "Input model class"); generatedClasses.add(model.getName()); } @@ -316,7 +326,7 @@ public class DriverCodeGenerator { template.setAttribute("methods", filteredMethods); template.setAttribute("extends", config.getCodeGenOverridingRules().getServiceExtendingClass(className)); - File aFile = new File(config.getResourceClassLocation()+ resource.generateClassName(config) +config.getClassFileExtension()); + File aFile = new File(envConfig.getResourceClassLocation()+ resource.generateClassName(config) +config.getClassFileExtension()); writeFile(aFile, template.toString(), "API CLasses"); } } @@ -359,7 +369,7 @@ public class DriverCodeGenerator { template.setAttribute("imports", imports); template.setAttribute("extends", config.getCodeGenOverridingRules().getModelExtendingClass()); template.setAttribute("className", model.getGenratedClassName()); - File aFile = new File(config.getModelClassLocation()+model.getGenratedClassName()+config.getClassFileExtension()); + File aFile = new File(envConfig.getModelClassLocation()+model.getGenratedClassName()+config.getClassFileExtension()); writeFile(aFile, template.toString(), "Wrapper class for test data file"); } diff --git a/code-gen/src/main/java/com/wordnik/codegen/config/CodeGenConfig.java b/code-gen/src/main/java/com/wordnik/codegen/config/CodeGenConfig.java index 739e7a971ef..a46a395193c 100644 --- a/code-gen/src/main/java/com/wordnik/codegen/config/CodeGenConfig.java +++ b/code-gen/src/main/java/com/wordnik/codegen/config/CodeGenConfig.java @@ -11,41 +11,28 @@ import java.util.List; */ public class CodeGenConfig { - private String templateLocation; //lang config - private String classFileExtension; //lang config - - private String modelClassLocation; //output config - - private String resourceClassLocation; //output config + private String classFileExtension; /** * Default model imports that we need to include in all service classes. This is needed because some times, * we may need to write custom classes and those classes will not be known to code generation. To import those * classes in service classes we use this property */ - private List defaultModelImports; //code gen helper config + private List defaultModelImports; /** * Default service imports that we need to include in all service classes. This is needed because some times, * we may need to write custom classes ans those classes will not be known to code generation. To import those * classes in service classes we use this property */ - private List defaultServiceImports; //code gen helper config + private List defaultServiceImports; - private CodeGenOverridingRules codeGenOverridingRules; //code gen helper config + private CodeGenOverridingRules codeGenOverridingRules; - private DataTypeMapper dataTypeMapper; //code gen helper + private DataTypeMapper dataTypeMapper; - private ServiceAndMethodNameGenerator nameGenerator; //code gen helper - - public String getTemplateLocation() { - return templateLocation; - } - - public void setTemplateLocation(String templateLocation) { - this.templateLocation = templateLocation; - } + private ServiceAndMethodNameGenerator nameGenerator; public String getClassFileExtension() { return classFileExtension; @@ -55,22 +42,6 @@ public class CodeGenConfig { this.classFileExtension = classFileExtension; } - public String getModelClassLocation() { - return modelClassLocation; - } - - public void setModelClassLocation(String modelClassLocation) { - this.modelClassLocation = modelClassLocation; - } - - public String getResourceClassLocation() { - return resourceClassLocation; - } - - public void setResourceClassLocation(String resourceClassLocation) { - this.resourceClassLocation = resourceClassLocation; - } - public List getDefaultModelImports() { return defaultModelImports; } diff --git a/code-gen/src/main/java/com/wordnik/codegen/config/GenerationEnvironmentConfig.java b/code-gen/src/main/java/com/wordnik/codegen/config/GenerationEnvironmentConfig.java new file mode 100644 index 00000000000..e7e32febca5 --- /dev/null +++ b/code-gen/src/main/java/com/wordnik/codegen/config/GenerationEnvironmentConfig.java @@ -0,0 +1,40 @@ +package com.wordnik.codegen.config; + +/** + * User: deepakmichael + * Date: 23/07/11 + * Time: 8:01 AM + */ +public class GenerationEnvironmentConfig { + + private String templateLocation; //lang config + + private String modelClassLocation; //output config + + private String resourceClassLocation; //output config + + public String getTemplateLocation() { + return templateLocation; + } + + public void setTemplateLocation(String templateLocation) { + this.templateLocation = templateLocation; + } + + public String getModelClassLocation() { + return modelClassLocation; + } + + public void setModelClassLocation(String modelClassLocation) { + this.modelClassLocation = modelClassLocation; + } + + public String getResourceClassLocation() { + return resourceClassLocation; + } + + public void setResourceClassLocation(String resourceClassLocation) { + this.resourceClassLocation = resourceClassLocation; + } + +} diff --git a/code-gen/src/main/java/com/wordnik/codegen/java/JavaCodeGenConfig.java b/code-gen/src/main/java/com/wordnik/codegen/java/JavaCodeGenConfig.java index b8796cbf96b..85dfa0676d5 100644 --- a/code-gen/src/main/java/com/wordnik/codegen/java/JavaCodeGenConfig.java +++ b/code-gen/src/main/java/com/wordnik/codegen/java/JavaCodeGenConfig.java @@ -14,9 +14,6 @@ public class JavaCodeGenConfig extends CodeGenConfig { public JavaCodeGenConfig() { this.setClassFileExtension(".java"); - this.setModelClassLocation("../java/src/main/java/com/wordnik/model/"); - this.setResourceClassLocation("../java/src/main/java/com/wordnik/api/"); - this.setTemplateLocation("conf/templates/java"); List defaultModelImports = new ArrayList(); defaultModelImports.add("com.wordnik.common.WordListType"); defaultModelImports.add("com.wordnik.common.StringValue"); diff --git a/code-gen/src/main/java/com/wordnik/codegen/java/JavaGenEnvConfig.java b/code-gen/src/main/java/com/wordnik/codegen/java/JavaGenEnvConfig.java new file mode 100644 index 00000000000..8d2456a0fa7 --- /dev/null +++ b/code-gen/src/main/java/com/wordnik/codegen/java/JavaGenEnvConfig.java @@ -0,0 +1,17 @@ +package com.wordnik.codegen.java; + +import com.wordnik.codegen.config.GenerationEnvironmentConfig; + +/** + * User: deepakmichael + * Date: 23/07/11 + * Time: 8:09 AM + */ +public class JavaGenEnvConfig extends GenerationEnvironmentConfig{ + + public JavaGenEnvConfig() { + this.setModelClassLocation("../java/src/main/java/com/wordnik/model/"); + this.setResourceClassLocation("../java/src/main/java/com/wordnik/api/"); + this.setTemplateLocation("conf/templates/java"); + } +} diff --git a/code-gen/src/main/java/com/wordnik/codegen/java/JavaLibCodeGen.java b/code-gen/src/main/java/com/wordnik/codegen/java/JavaLibCodeGen.java index 4a3796d13a7..8be3d290545 100644 --- a/code-gen/src/main/java/com/wordnik/codegen/java/JavaLibCodeGen.java +++ b/code-gen/src/main/java/com/wordnik/codegen/java/JavaLibCodeGen.java @@ -16,5 +16,6 @@ public class JavaLibCodeGen extends DriverCodeGenerator { public JavaLibCodeGen(){ this.setConfig(new JavaCodeGenConfig()); + this.setEnvConfig(new JavaGenEnvConfig()); } }