From c8d5701089a64c902d5fd1128d27883dbab7cbbf Mon Sep 17 00:00:00 2001 From: sunn <33183834+etherealjoy@users.noreply.github.com> Date: Sun, 29 Sep 2019 20:15:49 +0200 Subject: [PATCH] Add missing enum processing in C++ codegen, already present for Qt5 (#3986) --- .../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 8bb5401e3c9..c7ca1bc9c1b 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 org.slf4j.LoggerFactory; 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 @@ abstract public class AbstractCppCodegen extends DefaultCodegen implements Codeg 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 ec03a45490f..7ab3d8bfef3 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 class CppQt5AbstractCodegen extends AbstractCppCodegen implements Codegen 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 868f98f7ac7..a1141597d0e 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 08bb16e1698..9784bdaee67 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); }