From a6f3914a92c0e455bf48a442cb210637856b5f4e Mon Sep 17 00:00:00 2001 From: Jim Schubert Date: Thu, 18 Feb 2016 13:07:42 -0500 Subject: [PATCH] [feature #1255] prefix and suffix for model names. This implements the command line arguments `--model-name-prefix` and `--model-name-suffix` for all languages which do not override `DefaultCodegen.toModelName()`. This fixes most of swagger-api/swagger-codegen#1255. Connection to the maven plugin works with additional-properties, a more explicit parameter waits for swagger-api/swagger-codegen#2168. --- .../java/io/swagger/codegen/cmd/Generate.java | 14 ++++++++++++++ .../java/io/swagger/codegen/DefaultCodegen.java | 16 ++++++++++++++++ .../codegen/config/CodegenConfigurator.java | 2 ++ 3 files changed, 32 insertions(+) diff --git a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Generate.java b/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Generate.java index 04d60e2ec88..c9375c6dab4 100644 --- a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Generate.java +++ b/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Generate.java @@ -73,6 +73,12 @@ public class Generate implements Runnable { @Option(name = {"--model-package"}, title = "model package", description = CodegenConstants.MODEL_PACKAGE_DESC) private String modelPackage; + @Option(name = {"--model-name-prefix"}, title = "model name prefix", description = CodegenConstants.MODEL_NAME_PREFIX_DESC) + private String modelNamePrefix; + + @Option(name = {"--model-name-suffix"}, title = "model name suffix", description = CodegenConstants.MODEL_NAME_SUFFIX_DESC) + private String modelNameSuffix; + @Option(name = {"--instantiation-types"}, title = "instantiation types", description = "sets instantiation type mappings in the format of type=instantiatedType,type=instantiatedType." + "For example (in Java): array=ArrayList,map=HashMap. In other words array types will get instantiated as ArrayList in generated code.") private String instantiationTypes; @@ -156,6 +162,14 @@ public class Generate implements Runnable { configurator.setModelPackage(modelPackage); } + if(isNotEmpty(modelNamePrefix)){ + configurator.setModelNamePrefix(modelNamePrefix); + } + + if(isNotEmpty(modelNameSuffix)){ + configurator.setModelNameSuffix(modelNameSuffix); + } + if(isNotEmpty(invokerPackage)) { configurator.setInvokerPackage(invokerPackage); } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index 9e692a1c80b..37793bb2fb7 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -108,6 +108,14 @@ public class DefaultCodegen { this.setEnsureUniqueParams(Boolean.valueOf(additionalProperties .get(CodegenConstants.ENSURE_UNIQUE_PARAMS).toString())); } + + if(additionalProperties.containsKey(CodegenConstants.MODEL_NAME_PREFIX)){ + this.setModelNamePrefix((String) additionalProperties.get(CodegenConstants.MODEL_NAME_PREFIX)); + } + + if(additionalProperties.containsKey(CodegenConstants.MODEL_NAME_SUFFIX)){ + this.setModelNameSuffix((String) additionalProperties.get(CodegenConstants.MODEL_NAME_SUFFIX)); + } } // override with any special post-processing for all models @@ -284,6 +292,14 @@ public class DefaultCodegen { this.modelPackage = modelPackage; } + public void setModelNamePrefix(String modelNamePrefix){ + this.modelNamePrefix = modelNamePrefix; + } + + public void setModelNameSuffix(String modelNameSuffix){ + this.modelNameSuffix = modelNameSuffix; + } + public void setApiPackage(String apiPackage) { this.apiPackage = apiPackage; } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java index eaa3bd21fad..7c73b2cb6b0 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/config/CodegenConfigurator.java @@ -320,6 +320,8 @@ public class CodegenConfigurator { checkAndSetAdditionalProperty(artifactId, CodegenConstants.ARTIFACT_ID); checkAndSetAdditionalProperty(artifactVersion, CodegenConstants.ARTIFACT_VERSION); checkAndSetAdditionalProperty(templateDir, toAbsolutePathStr(templateDir), CodegenConstants.TEMPLATE_DIR); + checkAndSetAdditionalProperty(modelNamePrefix, CodegenConstants.MODEL_NAME_PREFIX); + checkAndSetAdditionalProperty(modelNameSuffix, CodegenConstants.MODEL_NAME_SUFFIX); handleDynamicProperties(config);