From b5f8d6bf07e79ff1d99cbd3829cae1ea040de24b Mon Sep 17 00:00:00 2001 From: Alex Weaver Date: Mon, 24 Feb 2020 09:55:42 -0600 Subject: [PATCH 1/2] Add reserved word option to Pistache and Restbed generators --- .../codegen/languages/CppPistacheServerCodegen.java | 9 ++++++++- .../codegen/languages/CppRestbedServerCodegen.java | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java index 110a69f8bd12..f845985efb75 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java @@ -104,6 +104,7 @@ public CppPistacheServerCodegen() { cliOptions.clear(); addSwitch(OPTIONAL_EXTERNAL_LIB, OPTIONAL_EXTERNAL_LIB_DESC, this.isAddExternalLibs); addOption(HELPERS_PACKAGE_NAME, HELPERS_PACKAGE_NAME_DESC, this.helpersPackage); + addOption(RESERVED_WORD_PREFIX_OPTION, RESERVED_WORD_PREFIX_DESC, this.reservedWordPrefix); addSwitch(OPTION_USE_STRUCT_MODEL, OPTION_USE_STRUCT_MODEL_DESC, this.isUseStructModel); reservedWords = new HashSet<>(); @@ -156,12 +157,18 @@ public void processOpts() { supportingFiles.add(new SupportingFile("cmake.mustache", "", "CMakeLists.txt")); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); } + if (additionalProperties.containsKey(RESERVED_WORD_PREFIX_OPTION)) + { + reservedWordPrefix = (String) additionalProperties.get(RESERVED_WORD_PREFIX_OPTION); + } + additionalProperties.put("modelNamespaceDeclarations", modelPackage.split("\\.")); additionalProperties.put("modelNamespace", modelPackage.replaceAll("\\.", "::")); additionalProperties.put("apiNamespaceDeclarations", apiPackage.split("\\.")); additionalProperties.put("apiNamespace", apiPackage.replaceAll("\\.", "::")); additionalProperties.put("helpersNamespaceDeclarations", helpersPackage.split("\\.")); - additionalProperties.put("helpersNamespace", helpersPackage.replaceAll("\\.", "::")); + additionalProperties.put("helpersNamespace", helpersPackage.replaceAll("\\.", "::")); + additionalProperties.put(RESERVED_WORD_PREFIX_OPTION, reservedWordPrefix); if (additionalProperties.containsKey(OPTIONAL_EXTERNAL_LIB)) { setAddExternalLibs(convertPropertyToBooleanAndWriteBack(OPTIONAL_EXTERNAL_LIB)); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java index bebbf3f70ce4..a0316c9126d6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestbedServerCodegen.java @@ -89,6 +89,9 @@ public CppRestbedServerCodegen() { addOption(DEFAULT_INCLUDE, "The default include statement that should be placed in all headers for including things like the declspec (convention: #include \"Commons.h\" ", this.defaultInclude); + addOption(RESERVED_WORD_PREFIX_OPTION, + RESERVED_WORD_PREFIX_DESC, + this.reservedWordPrefix); supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore")); supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh")); @@ -209,12 +212,17 @@ public void processOpts() { defaultInclude = additionalProperties.get(DEFAULT_INCLUDE).toString(); } + if (additionalProperties.containsKey(RESERVED_WORD_PREFIX_OPTION)) { + reservedWordPrefix = additionalProperties.get(RESERVED_WORD_PREFIX_OPTION).toString(); + } + additionalProperties.put("modelNamespaceDeclarations", modelPackage.split("\\.")); additionalProperties.put("modelNamespace", modelPackage.replaceAll("\\.", "::")); additionalProperties.put("apiNamespaceDeclarations", apiPackage.split("\\.")); additionalProperties.put("apiNamespace", apiPackage.replaceAll("\\.", "::")); additionalProperties.put("declspec", declspec); additionalProperties.put("defaultInclude", defaultInclude); + additionalProperties.put(RESERVED_WORD_PREFIX_OPTION, reservedWordPrefix); } /** From aa38ff1172d8980d9ee66a16243365c95c6fd897 Mon Sep 17 00:00:00 2001 From: Alex Weaver Date: Mon, 24 Feb 2020 11:06:15 -0600 Subject: [PATCH 2/2] Regenerate docs --- docs/generators/cpp-pistache-server.md | 1 + docs/generators/cpp-restbed-server.md | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/generators/cpp-pistache-server.md b/docs/generators/cpp-pistache-server.md index e2639794bc1e..92d98570e4da 100644 --- a/docs/generators/cpp-pistache-server.md +++ b/docs/generators/cpp-pistache-server.md @@ -7,6 +7,7 @@ sidebar_label: cpp-pistache-server | ------ | ----------- | ------ | ------- | |addExternalLibs|Add the Possibility to fetch and compile external Libraries needed by this Framework.| |true| |helpersPackage|Specify the package name to be used for the helpers (e.g. org.openapitools.server.helpers).| |org.openapitools.server.helpers| +|reservedWordPrefix|Prefix to prepend to reserved words in order to avoid conflicts| |r_| |useStructModel|Use struct-based model template instead of get/set-based model template| |false| ## IMPORT MAPPING diff --git a/docs/generators/cpp-restbed-server.md b/docs/generators/cpp-restbed-server.md index 34de7ec93ffc..7b101378053d 100644 --- a/docs/generators/cpp-restbed-server.md +++ b/docs/generators/cpp-restbed-server.md @@ -10,6 +10,7 @@ sidebar_label: cpp-restbed-server |defaultInclude|The default include statement that should be placed in all headers for including things like the declspec (convention: #include "Commons.h" | || |modelPackage|C++ namespace for models (convention: name.space.model).| |org.openapitools.server.model| |packageVersion|C++ package version.| |1.0.0| +|reservedWordPrefix|Prefix to prepend to reserved words in order to avoid conflicts| |r_| ## IMPORT MAPPING