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 5d415dbf0f7f..62e2d47d0ae8 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 @@ -178,9 +178,42 @@ public class CodeGenMojo extends AbstractMojo { @Parameter(name = "configOptions") private Map configOptions; + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "instantiationTypes") + private List instantiationTypes; + + /** + * A map of classes and the import that should be used for that class + */ @Parameter(name = "importMappings") private List importMappings; + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "typeMappings") + private List typeMappings; + + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "languageSpecificPrimitives") + private List languageSpecificPrimitives; + + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "additionalProperties") + private List additionalProperties; + + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "reservedWordsMappings") + private List reservedWordsMappings; + /** * Generate the apis */ @@ -390,37 +423,51 @@ public class CodeGenMojo extends AbstractMojo { System.setProperty("withXml", withXml.toString()); if (configOptions != null) { - - if (configOptions.containsKey("instantiation-types")) { + // Retained for backwards-compataibility with configOptions -> instantiation-types + if (instantiationTypes == null && configOptions.containsKey("instantiation-types")) { applyInstantiationTypesKvp(configOptions.get("instantiation-types").toString(), configurator); } + // Retained for backwards-compataibility with configOptions -> import-mappings if (importMappings == null && configOptions.containsKey("import-mappings")) { applyImportMappingsKvp(configOptions.get("import-mappings").toString(), configurator); } - if (configOptions.containsKey("type-mappings")) { + // Retained for backwards-compataibility with configOptions -> type-mappings + if (typeMappings == null && configOptions.containsKey("type-mappings")) { applyTypeMappingsKvp(configOptions.get("type-mappings").toString(), configurator); } - if (configOptions.containsKey("language-specific-primitives")) { + // Retained for backwards-compataibility with configOptions -> language-specific-primitives + if (languageSpecificPrimitives == null && configOptions.containsKey("language-specific-primitives")) { applyLanguageSpecificPrimitivesCsv(configOptions .get("language-specific-primitives").toString(), configurator); } - if (configOptions.containsKey("additional-properties")) { + // Retained for backwards-compataibility with configOptions -> additional-properties + if (additionalProperties == null && configOptions.containsKey("additional-properties")) { applyAdditionalPropertiesKvp(configOptions.get("additional-properties").toString(), configurator); } - if (configOptions.containsKey("reserved-words-mappings")) { + // Retained for backwards-compataibility with configOptions -> reserved-words-mappings + if (reservedWordsMappings == null && configOptions.containsKey("reserved-words-mappings")) { applyReservedWordsMappingsKvp(configOptions.get("reserved-words-mappings") .toString(), configurator); } } + //Apply Instantiation Types + if (instantiationTypes != null && !configOptions.containsKey("instantiation-types")) { + String instantiationTypesAsString = instantiationTypes.toString(); + applyInstantiationTypesKvp( + instantiationTypesAsString.substring(0, instantiationTypesAsString.length() - 1), + configurator); + } + + //Apply Import Mappings if (importMappings != null && !configOptions.containsKey("import-mappings")) { String importMappingsAsString = importMappings.toString(); applyImportMappingsKvp( @@ -428,6 +475,38 @@ public class CodeGenMojo extends AbstractMojo { configurator); } + //Apply Type Mappings + if (typeMappings != null && !configOptions.containsKey("type-mappings")) { + String typeMappingsAsString = typeMappings.toString(); + applyTypeMappingsKvp( + typeMappingsAsString.substring(0, typeMappingsAsString.length() - 1), + configurator); + } + + //Apply Language Specific Primitives + if (languageSpecificPrimitives != null && !configOptions.containsKey("language-specific-primitives")) { + String languageSpecificPrimitivesAsString = languageSpecificPrimitives.toString(); + applyLanguageSpecificPrimitivesCsv( + languageSpecificPrimitivesAsString.substring(0,languageSpecificPrimitivesAsString.length() - 1), + configurator); + } + + //Apply Additional Properties + if (additionalProperties != null && !configOptions.containsKey("additional-properties")) { + String additionalPropertiesAsString = additionalProperties.toString(); + applyAdditionalPropertiesKvp( + additionalPropertiesAsString.substring(0, additionalPropertiesAsString.length() - 1), + configurator); + } + + //Apply Reserved Words Mappings + if (reservedWordsMappings != null && !configOptions.containsKey("reserved-words-mappings")) { + String reservedWordsMappingsAsString = reservedWordsMappings.toString(); + applyReservedWordsMappingsKvp( + reservedWordsMappingsAsString.substring(0, reservedWordsMappingsAsString.length() - 1), + configurator); + } + if (environmentVariables != null) { for (String key : environmentVariables.keySet()) {