From 5bc907f1d430e16ea2aa86bc7383ef62b92cc6cb Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Tue, 23 Sep 2014 09:14:25 -0700 Subject: [PATCH] added template variable --- .../com/wordnik/swagger/codegen/Codegen.java | 17 ++++++++++++++--- .../wordnik/swagger/codegen/CodegenConfig.java | 1 + .../wordnik/swagger/codegen/DefaultCodegen.java | 10 +++++++--- .../swagger/codegen/DefaultGenerator.java | 1 + 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/wordnik/swagger/codegen/Codegen.java b/src/main/java/com/wordnik/swagger/codegen/Codegen.java index 17ab9118062..9fdc52a749c 100644 --- a/src/main/java/com/wordnik/swagger/codegen/Codegen.java +++ b/src/main/java/com/wordnik/swagger/codegen/Codegen.java @@ -14,6 +14,7 @@ public class Codegen extends DefaultGenerator { options.addOption("l", "lang", true, "client language to generate"); options.addOption("o", "output", true, "where to write the generated files"); options.addOption("i", "input-spec", true, "location of the swagger spec, as URL or file"); + options.addOption("t", "template-dir", true, "folder containing the template files"); ClientOptInput codegenInput = new ClientOptInput(); ClientOpts clientArgs = new ClientOpts(); @@ -29,10 +30,16 @@ public class Codegen extends DefaultGenerator { codegenInput.getConfig().setOutputDir(cmd.getOptionValue("o")); if (cmd.hasOption("i")) swagger = new SwaggerLoader().read(cmd.getOptionValue("i")); - + if (cmd.hasOption("t")) + clientArgs.getProperties().put("templateDir", + String.valueOf(cmd.getOptionValue("t"))); + if (cmd.hasOption("h")) { + usage(options); + return; + } } catch (Exception e) { - e.printStackTrace(); + usage(options); return; } @@ -40,7 +47,6 @@ public class Codegen extends DefaultGenerator { codegenInput .opts(clientArgs) .swagger(swagger); - new Codegen().opts(codegenInput).generate(); } catch (Exception e) { @@ -48,6 +54,11 @@ public class Codegen extends DefaultGenerator { } } + static void usage(Options options) { + HelpFormatter formatter = new HelpFormatter(); + formatter.printHelp( "Codegen", options ); + } + static CodegenConfig getConfig(String name) { if("objc".equals(name)) return new ObjcClientCodegen(); diff --git a/src/main/java/com/wordnik/swagger/codegen/CodegenConfig.java b/src/main/java/com/wordnik/swagger/codegen/CodegenConfig.java index 808b893913a..5bb8e2e9e3f 100644 --- a/src/main/java/com/wordnik/swagger/codegen/CodegenConfig.java +++ b/src/main/java/com/wordnik/swagger/codegen/CodegenConfig.java @@ -20,6 +20,7 @@ public interface CodegenConfig { String escapeReservedWord(String name); String getTypeDeclaration(Property p); String getTypeDeclaration(String name); + void processOpts(); Set reservedWords(); diff --git a/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index d616cafd943..329ffb9d941 100644 --- a/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -22,6 +22,12 @@ public class DefaultCodegen { protected Map additionalProperties = new HashMap(); protected List supportingFiles = new ArrayList(); + public void processOpts(){ + if(additionalProperties.containsKey("templateDir")) { + this.setTemplateDir((String)additionalProperties.get("templateDir")); + } + } + // override with any special post-processing public Map postProcessModels(Map objs) { return objs; @@ -214,10 +220,8 @@ public class DefaultCodegen { String inner = getSwaggerType(ap.getItems()); return "new ArrayList<" + inner + ">() "; } - else { - // System.out.println("unhandled property default value"); + else return "null"; - } } /** diff --git a/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java b/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java index 6c5a1e76a73..04b8ea80241 100644 --- a/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java +++ b/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java @@ -32,6 +32,7 @@ public class DefaultGenerator implements Generator { throw new RuntimeException("missing swagger input or config!"); } try { + config.processOpts(); Map models = null; Map operations = null;