From a036967335267ba1eb01eb5e46d7cc73a8d82ea0 Mon Sep 17 00:00:00 2001 From: etherealjoy Date: Sun, 29 Sep 2019 14:18:40 +0200 Subject: [PATCH] Add missing enum processing in C++ codegen, already present for Qt5 --- .../codegen/languages/AbstractCppCodegen.java | 6 ++++++ .../codegen/languages/CppQt5AbstractCodegen.java | 5 ----- .../cpp-rest-sdk-client/model-header.mustache | 6 +++--- .../cpp-rest-sdk-client/model-source.mustache | 16 ++++++++-------- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java index 8bb5401e3c91..c7ca1bc9c1b0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCppCodegen.java @@ -35,6 +35,7 @@ import java.io.File; import java.net.URL; import java.util.Arrays; +import java.util.Map; abstract public class AbstractCppCodegen extends DefaultCodegen implements CodegenConfig { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractCppCodegen.class); @@ -306,4 +307,9 @@ public void preprocessOpenAPI(OpenAPI openAPI) { this.additionalProperties.put("serverHost", host); } } + + @Override + public Map postProcessModels(Map objs) { + return postProcessModelsEnum(objs); + } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5AbstractCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5AbstractCodegen.java index ec03a45490f0..7ab3d8bfef3a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5AbstractCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppQt5AbstractCodegen.java @@ -332,11 +332,6 @@ public Map postProcessOperationsWithModels(Map o return objs; } - @Override - public Map postProcessModels(Map objs) { - return postProcessModelsEnum(objs); - } - @Override public String toEnumValue(String value, String datatype) { return escapeText(value); diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-header.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-header.mustache index 868f98f7ac77..a1141597d0ed 100644 --- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-header.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-header.mustache @@ -42,14 +42,14 @@ public: enum class e{{classname}} { {{#allowableValues}} - {{#values}} + {{#enumVars}} {{#enumDescription}} /// /// {{enumDescription}} /// {{/enumDescription}} - {{classname}}_{{.}}{{^last}},{{/last}} - {{/values}} + {{classname}}_{{{name}}}{{^last}},{{/last}} + {{/enumVars}} {{/allowableValues}} }; diff --git a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache index 08bb16e16982..9784bdaee679 100644 --- a/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache @@ -27,8 +27,8 @@ web::json::value {{classname}}::toJson() const { web::json::value val = web::json::value::object(); - {{#allowableValues}}{{#values}} - if (m_value == e{{classname}}::{{classname}}_{{.}}) val = web::json::value::string(U("{{.}}"));{{/values}}{{/allowableValues}} + {{#allowableValues}}{{#enumVars}} + if (m_value == e{{classname}}::{{classname}}_{{name}}) val = web::json::value::string(U({{{value}}}));{{/enumVars}}{{/allowableValues}} return val; } @@ -37,8 +37,8 @@ void {{classname}}::fromJson(const web::json::value& val) { auto s = val.as_string(); - {{#allowableValues}}{{#values}} - if (s == utility::conversions::to_string_t("{{.}}")) m_value = e{{classname}}::{{classname}}_{{.}};{{/values}}{{/allowableValues}} + {{#allowableValues}}{{#enumVars}} + if (s == utility::conversions::to_string_t({{{value}}})) m_value = e{{classname}}::{{classname}}_{{name}};{{/enumVars}}{{/allowableValues}} } void {{classname}}::toMultipart(std::shared_ptr multipart, const utility::string_t& prefix) const @@ -51,8 +51,8 @@ void {{classname}}::toMultipart(std::shared_ptr multipart, co utility::string_t s; - {{#allowableValues}}{{#values}} - if (m_value == e{{classname}}::{{classname}}_{{.}}) s = utility::conversions::to_string_t("{{.}}");{{/values}}{{/allowableValues}} + {{#allowableValues}}{{#enumVars}} + if (m_value == e{{classname}}::{{classname}}_{{name}}) s = utility::conversions::to_string_t({{{value}}});{{/enumVars}}{{/allowableValues}} multipart->add(ModelBase::toHttpContent(namePrefix, s)); } @@ -70,8 +70,8 @@ void {{classname}}::fromMultiPart(std::shared_ptr multipart, s = ModelBase::stringFromHttpContent(multipart->getContent(namePrefix)); e{{classname}} v; - {{#allowableValues}}{{#values}} - if (s == utility::conversions::to_string_t("{{.}}")) v = e{{classname}}::{{classname}}_{{.}};{{/values}}{{/allowableValues}} + {{#allowableValues}}{{#enumVars}} + if (s == utility::conversions::to_string_t({{{value}}})) v = e{{classname}}::{{classname}}_{{name}};{{/enumVars}}{{/allowableValues}} setValue(v); }