diff --git a/src/main/java/com/wordnik/swagger/codegen/CodegenModel.java b/src/main/java/com/wordnik/swagger/codegen/CodegenModel.java index 776cce9cdc7..f6e635abee5 100644 --- a/src/main/java/com/wordnik/swagger/codegen/CodegenModel.java +++ b/src/main/java/com/wordnik/swagger/codegen/CodegenModel.java @@ -7,9 +7,9 @@ import java.util.*; public class CodegenModel { public String parent; - public String name, classname, description; + public String name, classname, description, classVarName, modelJson; public String defaultValue; public List vars = new ArrayList(); public Set imports = new HashSet(); - public Boolean hasVars, emptyVars; + public Boolean hasVars, emptyVars, hasMoreModels; } \ No newline at end of file diff --git a/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index 0074e21d7dc..2285af6acb9 100644 --- a/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -316,6 +316,8 @@ public class DefaultCodegen { m.name = name; m.description = model.getDescription(); m.classname = toModelName(name); + m.classVarName = toVarName(name); + m.modelJson = Json.pretty(model); int count = 0; if(model instanceof ArrayModel) { ArrayModel am = (ArrayModel) model; diff --git a/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java b/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java index c739dbed7bf..1d25a828f32 100644 --- a/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java +++ b/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java @@ -34,21 +34,22 @@ public class DefaultGenerator implements Generator { } try { config.processOpts(); - Map models = null; + // models = null; List allOperations = new ArrayList(); - + List allModels = new ArrayList(); // models Map definitions = swagger.getDefinitions(); for(String name: definitions.keySet()) { Model model = definitions.get(name); Map modelMap = new HashMap(); modelMap.put(name, model); - models = processModels(config, modelMap); + Map models = processModels(config, modelMap); models.putAll(config.additionalProperties()); + + allModels.add(((List)models.get("models")).get(0)); for(String templateName : config.modelTemplateFiles().keySet()) { String suffix = config.modelTemplateFiles().get(templateName); String filename = config.modelFileFolder() + File.separator + config.toModelFilename(name) + suffix; - String template = readTemplate(config.templateDir() + File.separator + templateName); Template tmpl = Mustache.compiler() .withLoader(new Mustache.TemplateLoader() { @@ -58,7 +59,6 @@ public class DefaultGenerator implements Generator { }) .defaultValue("") .compile(template); - writeToFile(filename, tmpl.execute(models)); } } @@ -101,6 +101,13 @@ public class DefaultGenerator implements Generator { Map apis = new HashMap(); apis.put("apis", allOperations); bundle.put("apiInfo", apis); + bundle.put("models", allModels); + + for(int i = 0; i < allModels.size() - 1; i++) { + HashMap cm = (HashMap) allModels.get(i); + CodegenModel m = cm.get("model"); + m.hasMoreModels = true; + } for(SupportingFile support : config.supportingFiles()) { String outputFolder = config.outputFolder();