From 5d8c23dd09aac2a78333e2658258ee9609661dcc Mon Sep 17 00:00:00 2001 From: Nadezhda Makarkina Date: Mon, 2 Nov 2015 18:28:36 +0300 Subject: [PATCH] CliOption hah been change to allow enum values --- .../io/swagger/codegen/cmd/ConfigHelp.java | 2 +- .../java/io/swagger/codegen/CliOption.java | 58 +++++++++++++++++++ .../codegen/languages/JavaClientCodegen.java | 4 +- 3 files changed, 62 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java b/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java index f7a128613b9..eb2f8afea92 100644 --- a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java +++ b/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java @@ -20,7 +20,7 @@ public class ConfigHelp implements Runnable { System.out.println("CONFIG OPTIONS"); for (CliOption langCliOption : config.cliOptions()) { System.out.println("\t" + langCliOption.getOpt()); - System.out.println("\t " + langCliOption.getDescription().replaceAll("\n", "\n\t ")); + System.out.println("\t " + langCliOption.getOptionHelp().replaceAll("\n", "\n\t ")); System.out.println(); } } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CliOption.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CliOption.java index 1aa0937b31b..d8bea87d8eb 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CliOption.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CliOption.java @@ -1,12 +1,25 @@ package io.swagger.codegen; +import io.swagger.models.properties.StringProperty; + +import java.util.LinkedHashMap; +import java.util.Map; + public class CliOption { private final String opt; private String description; + private String type; + private String defaultValue; + private Map enumValues; public CliOption(String opt, String description) { + this(opt, description, StringProperty.TYPE); + } + + public CliOption(String opt, String description, String type) { this.opt = opt; this.description = description; + this.type = type; } public String getOpt() { @@ -20,4 +33,49 @@ public class CliOption { public void setDescription(String description) { this.description = description; } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getDefault() { + return defaultValue; + } + + public void setDefault(String defaultValue) { + this.defaultValue = defaultValue; + } + + public CliOption addEnum(String value, String description) { + if (this.enumValues == null) { + this.enumValues = new LinkedHashMap(); + } + if (!enumValues.containsKey(value)) { + enumValues.put(value, description); + } + return this; + } + + public Map getEnum() { + return enumValues; + } + + public void setEnum(Map enumValues) { + this.enumValues = enumValues; + this.type = "enum"; + } + + public String getOptionHelp() { + StringBuilder sb = new StringBuilder(description); + if (enumValues != null) { + for (Map.Entry entry : enumValues.entrySet()) { + sb.append("\n").append(entry.getKey()).append(" - ").append(entry.getValue()); + } + } + return sb.toString(); + } } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java index 34b4e0e77d6..fd0c1826690 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java @@ -96,7 +96,9 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig { supportedLibraries.put("jersey2", "HTTP client: Jersey client 2.6"); supportedLibraries.put("okhttp-gson", "HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1"); supportedLibraries.put("retrofit", "HTTP client: OkHttp 2.4.0. JSON processing: Gson 2.3.1 (Retrofit 1.9.0)"); - cliOptions.add(buildLibraryCliOption(supportedLibraries)); + CliOption library = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use:"); + library.setEnum(supportedLibraries); + cliOptions.add(library); } @Override