From 3ddccb5e5cf8ed53f2386070ca8346d11b7fdb8d Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Mon, 25 Jan 2016 21:34:28 -0800 Subject: [PATCH] fix for #1976, added missing types --- .../swagger/codegen/plugin/CodeGenMojo.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java index 1608329f953..f0afc2999da 100644 --- a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java +++ b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java @@ -19,8 +19,10 @@ package io.swagger.codegen.plugin; import config.Config; import config.ConfigParser; import io.swagger.codegen.*; +import io.swagger.codegen.utils.OptionUtils; import io.swagger.models.Swagger; import io.swagger.parser.SwaggerParser; +import org.apache.commons.lang3.tuple.Pair; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.LifecyclePhase; @@ -30,6 +32,7 @@ import org.apache.maven.project.MavenProject; import java.io.File; import java.util.HashMap; +import java.util.List; import java.util.Map; import static io.swagger.codegen.plugin.AdditionalParams.*; @@ -160,6 +163,20 @@ public class CodeGenMojo extends AbstractMojo { configOptions.get(langCliOption.getOpt())); } } + if(configOptions.containsKey("import-mappings")) { + Map mappings = createMapFromKeyValuePairs(configOptions.get("import-mappings").toString()); + config.importMapping().putAll(mappings); + } + + if(configOptions.containsKey("type-mappings")) { + Map mappings = createMapFromKeyValuePairs(configOptions.get("type-mappings").toString()); + config.typeMapping().putAll(mappings); + } + + if(configOptions.containsKey("instantiation-types")) { + Map mappings = createMapFromKeyValuePairs(configOptions.get("instantiation-types").toString()); + config.instantiationTypes().putAll(mappings); + } } if (null != configurationFile) { @@ -200,4 +217,16 @@ public class CodeGenMojo extends AbstractMojo { project.addCompileSourceRoot(output.toString()); } } + + private static Map createMapFromKeyValuePairs(String commaSeparatedKVPairs) { + final List> pairs = OptionUtils.parseCommaSeparatedTuples(commaSeparatedKVPairs); + + Map result = new HashMap(); + + for (Pair pair : pairs) { + result.put(pair.getLeft(), pair.getRight()); + } + + return result; + } }