From 698d0c1825af8062c43552c2505421436351cd87 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pa=C5=ADlo=20Ebermann?=
Date: Sat, 17 Jun 2017 13:12:44 +0200
Subject: [PATCH 1/2] Issue #5147: allow multiple occurrences for other plural
options, too.
---
README.md | 28 +++++--
.../java/io/swagger/codegen/cmd/Generate.java | 45 +++++-----
.../io/swagger/codegen/cmd/GenerateTest.java | 83 +++++++++++++++++--
.../config/CodegenConfiguratorUtils.java | 45 ++++++++++
4 files changed, 169 insertions(+), 32 deletions(-)
diff --git a/README.md b/README.md
index 2937f082953..e24e65fdcb5 100644
--- a/README.md
+++ b/README.md
@@ -265,22 +265,29 @@ NAME
SYNOPSIS
swagger-codegen-cli generate
[(-a | --auth )]
- [--additional-properties ]
+ [--additional-properties ...]
[--api-package ] [--artifact-id ]
[--artifact-version ]
[(-c | --config )]
- [-D ] [--group-id ]
+ [-D ...] [--git-repo-id ]
+ [--git-user-id ] [--group-id ]
+ [--http-user-agent ]
(-i | --input-spec )
- [--import-mappings ]
- [--instantiation-types ]
+ [--ignore-file-override ]
+ [--import-mappings ...]
+ [--instantiation-types ...]
[--invoker-package ]
(-l | --lang )
- [--language-specific-primitives ]
- [--library ] [--model-package ]
+ [--language-specific-primitives ...]
+ [--library ] [--model-name-prefix ]
+ [--model-name-suffix ]
+ [--model-package ]
[(-o
+ *
+ * - The methods named {@code apply...Kvp} take a string of comma-separated key-value pairs.
+ * - The methods named {@code apply...KvpList} take a list of such strings.
+ * - The method named {@code apply...Csv} takes a string of comma-separated values.
+ * - The method named {@code apply...CsvList} takes a list of such strings.
+ *
+ *
+ * The corresponding {@code add...} method on the passed configurator is called for each key-value pair (or value).
+ *
*/
public final class CodegenConfiguratorUtils {
@@ -29,6 +38,12 @@ public static void applySystemPropertiesKvp(String systemProperties, CodegenConf
}
}
+ public static void applyInstantiationTypesKvpList(List instantiationTypes, CodegenConfigurator configurator) {
+ for(String propString : instantiationTypes) {
+ applyInstantiationTypesKvp(propString, configurator);
+ }
+ }
+
public static void applyInstantiationTypesKvp(String instantiationTypes, CodegenConfigurator configurator) {
final Map map = createMapFromKeyValuePairs(instantiationTypes);
for (Map.Entry entry : map.entrySet()) {
@@ -36,6 +51,12 @@ public static void applyInstantiationTypesKvp(String instantiationTypes, Codegen
}
}
+ public static void applyImportMappingsKvpList(List importMappings, CodegenConfigurator configurator) {
+ for(String propString : importMappings) {
+ applyImportMappingsKvp(propString, configurator);
+ }
+ }
+
public static void applyImportMappingsKvp(String importMappings, CodegenConfigurator configurator) {
final Map map = createMapFromKeyValuePairs(importMappings);
for (Map.Entry entry : map.entrySet()) {
@@ -43,6 +64,12 @@ public static void applyImportMappingsKvp(String importMappings, CodegenConfigur
}
}
+ public static void applyTypeMappingsKvpList(List typeMappings, CodegenConfigurator configurator) {
+ for(String propString : typeMappings) {
+ applyTypeMappingsKvp(propString, configurator);
+ }
+ }
+
public static void applyTypeMappingsKvp(String typeMappings, CodegenConfigurator configurator) {
final Map map = createMapFromKeyValuePairs(typeMappings);
for (Map.Entry entry : map.entrySet()) {
@@ -50,6 +77,12 @@ public static void applyTypeMappingsKvp(String typeMappings, CodegenConfigurator
}
}
+ public static void applyAdditionalPropertiesKvpList(List additionalProperties, CodegenConfigurator configurator) {
+ for(String propString : additionalProperties) {
+ applyAdditionalPropertiesKvp(propString, configurator);
+ }
+ }
+
public static void applyAdditionalPropertiesKvp(String additionalProperties, CodegenConfigurator configurator) {
final Map map = createMapFromKeyValuePairs(additionalProperties);
for (Map.Entry entry : map.entrySet()) {
@@ -57,6 +90,12 @@ public static void applyAdditionalPropertiesKvp(String additionalProperties, Cod
}
}
+ public static void applyLanguageSpecificPrimitivesCsvList(List languageSpecificPrimitives, CodegenConfigurator configurator) {
+ for(String propString : languageSpecificPrimitives) {
+ applyLanguageSpecificPrimitivesCsv(propString, configurator);
+ }
+ }
+
public static void applyLanguageSpecificPrimitivesCsv(String languageSpecificPrimitives, CodegenConfigurator configurator) {
final Set set = createSetFromCsvList(languageSpecificPrimitives);
for (String item : set) {
@@ -64,6 +103,12 @@ public static void applyLanguageSpecificPrimitivesCsv(String languageSpecificPri
}
}
+ public static void applyReservedWordsMappingsKvpList(List reservedWordMappings, CodegenConfigurator configurator) {
+ for(String propString : reservedWordMappings) {
+ applyReservedWordsMappingsKvp(propString, configurator);
+ }
+ }
+
public static void applyReservedWordsMappingsKvp(String reservedWordMappings, CodegenConfigurator configurator) {
final Map map = createMapFromKeyValuePairs(reservedWordMappings);
for (Map.Entry entry : map.entrySet()) {
From dad53484fa377769241f3f2def0d2a8f90778cba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pa=C5=ADlo=20Ebermann?=
Date: Sat, 17 Jun 2017 13:53:31 +0200
Subject: [PATCH 2/2] Use two --additionalProperties parameters in sample
generation script.
---
bin/csharp-property-changed-petstore.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bin/csharp-property-changed-petstore.sh b/bin/csharp-property-changed-petstore.sh
index bade3670671..ad4bc1ab5d2 100755
--- a/bin/csharp-property-changed-petstore.sh
+++ b/bin/csharp-property-changed-petstore.sh
@@ -26,6 +26,6 @@ fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
-ags="generate $@ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l csharp -o samples/client/petstore/csharp/SwaggerClientWithPropertyChanged --additional-properties=generatePropertyChanged=true,packageGuid={5CD900DE-8266-412F-A758-28E1F9C623D5}"
+ags="generate $@ -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l csharp -o samples/client/petstore/csharp/SwaggerClientWithPropertyChanged --additional-properties generatePropertyChanged=true --additional-properties packageGuid={5CD900DE-8266-412F-A758-28E1F9C623D5}"
java $JAVA_OPTS -jar $executable $ags