From 590abe83f76de0ee5cd3129a62881b8886bd9ec8 Mon Sep 17 00:00:00 2001 From: Deepak Michael Date: Thu, 21 Jul 2011 10:02:05 +0530 Subject: [PATCH] Swagr code-gen: Making base class in models generated configurable --- code-gen/conf/templates/java/ModelObject.st | 2 +- .../main/java/com/wordnik/codegen/DriverCodeGenerator.java | 4 ++++ .../com/wordnik/codegen/config/CodeGenOverridingRules.java | 2 ++ .../com/wordnik/codegen/java/JavaCodeGenPverridingRules.java | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/code-gen/conf/templates/java/ModelObject.st b/code-gen/conf/templates/java/ModelObject.st index ebaeadc9827..760c5c82fc5 100644 --- a/code-gen/conf/templates/java/ModelObject.st +++ b/code-gen/conf/templates/java/ModelObject.st @@ -14,7 +14,7 @@ import $import$; * @author ramesh * */ -public class $className$ extends WordnikObject { +public class $className$ extends $extends$ { $fields:{ field | //$field.description$ 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 81b50f4974e..a97e5e7c3dd 100644 --- a/code-gen/src/main/java/com/wordnik/codegen/DriverCodeGenerator.java +++ b/code-gen/src/main/java/com/wordnik/codegen/DriverCodeGenerator.java @@ -252,6 +252,7 @@ public class DriverCodeGenerator { StringTemplate template = templateGroup.getInstanceOf(MODEL_OBJECT_TEMPLATE); template.setAttribute("fields", model.getFields()); 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()); writeFile(aFile, template.toString(), "Model class"); @@ -291,6 +292,7 @@ public class DriverCodeGenerator { StringTemplate template = templateGroup.getInstanceOf(MODEL_OBJECT_TEMPLATE); template.setAttribute("fields", model.getFields()); 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()); writeFile(aFile, template.toString(), "Assemble class"); @@ -334,6 +336,7 @@ public class DriverCodeGenerator { template.setAttribute("fields", model.getFields()); 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()); writeFile(aFile, template.toString(), "Input model class"); @@ -414,6 +417,7 @@ public class DriverCodeGenerator { StringTemplate template = templateGroup.getInstanceOf(MODEL_OBJECT_TEMPLATE); template.setAttribute("fields", model.getFields()); 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()); writeFile(aFile, template.toString(), "Wrapper class for test data file"); diff --git a/code-gen/src/main/java/com/wordnik/codegen/config/CodeGenOverridingRules.java b/code-gen/src/main/java/com/wordnik/codegen/config/CodeGenOverridingRules.java index c166cd23882..8329b20fb80 100644 --- a/code-gen/src/main/java/com/wordnik/codegen/config/CodeGenOverridingRules.java +++ b/code-gen/src/main/java/com/wordnik/codegen/config/CodeGenOverridingRules.java @@ -19,6 +19,8 @@ public interface CodeGenOverridingRules { public String getServiceExtendingClass(String serviceName); + public String getModelExtendingClass(); + public boolean isMethodIgnored(String serviceName, String methodName); public boolean isModelIgnored(String modelName); diff --git a/code-gen/src/main/java/com/wordnik/codegen/java/JavaCodeGenPverridingRules.java b/code-gen/src/main/java/com/wordnik/codegen/java/JavaCodeGenPverridingRules.java index bfffd2ee7bd..d0cd0b89093 100644 --- a/code-gen/src/main/java/com/wordnik/codegen/java/JavaCodeGenPverridingRules.java +++ b/code-gen/src/main/java/com/wordnik/codegen/java/JavaCodeGenPverridingRules.java @@ -33,6 +33,10 @@ public class JavaCodeGenPverridingRules implements CodeGenOverridingRules { return "WordnikAPI"; } + public String getModelExtendingClass() { + return "WordnikObject"; + } + public boolean isMethodIgnored(String serviceName, String methodName){ return (ignoreMethods.contains(serviceName+"."+methodName)); }