Add missing enum processing in C++ codegen, already present for Qt5 (#3986)

This commit is contained in:
sunn 2019-09-29 20:15:49 +02:00 committed by GitHub
parent b5fb92d5a8
commit c8d5701089
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 16 deletions

View File

@ -35,6 +35,7 @@ import org.slf4j.LoggerFactory;
import java.io.File; import java.io.File;
import java.net.URL; import java.net.URL;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map;
abstract public class AbstractCppCodegen extends DefaultCodegen implements CodegenConfig { abstract public class AbstractCppCodegen extends DefaultCodegen implements CodegenConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractCppCodegen.class); 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); this.additionalProperties.put("serverHost", host);
} }
} }
@Override
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
return postProcessModelsEnum(objs);
}
} }

View File

@ -332,11 +332,6 @@ public class CppQt5AbstractCodegen extends AbstractCppCodegen implements Codegen
return objs; return objs;
} }
@Override
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
return postProcessModelsEnum(objs);
}
@Override @Override
public String toEnumValue(String value, String datatype) { public String toEnumValue(String value, String datatype) {
return escapeText(value); return escapeText(value);

View File

@ -42,14 +42,14 @@ public:
enum class e{{classname}} enum class e{{classname}}
{ {
{{#allowableValues}} {{#allowableValues}}
{{#values}} {{#enumVars}}
{{#enumDescription}} {{#enumDescription}}
/// <summary> /// <summary>
/// {{enumDescription}} /// {{enumDescription}}
/// </summary> /// </summary>
{{/enumDescription}} {{/enumDescription}}
{{classname}}_{{.}}{{^last}},{{/last}} {{classname}}_{{{name}}}{{^last}},{{/last}}
{{/values}} {{/enumVars}}
{{/allowableValues}} {{/allowableValues}}
}; };

View File

@ -27,8 +27,8 @@ web::json::value {{classname}}::toJson() const
{ {
web::json::value val = web::json::value::object(); web::json::value val = web::json::value::object();
{{#allowableValues}}{{#values}} {{#allowableValues}}{{#enumVars}}
if (m_value == e{{classname}}::{{classname}}_{{.}}) val = web::json::value::string(U("{{.}}"));{{/values}}{{/allowableValues}} if (m_value == e{{classname}}::{{classname}}_{{name}}) val = web::json::value::string(U({{{value}}}));{{/enumVars}}{{/allowableValues}}
return val; return val;
} }
@ -37,8 +37,8 @@ void {{classname}}::fromJson(const web::json::value& val)
{ {
auto s = val.as_string(); auto s = val.as_string();
{{#allowableValues}}{{#values}} {{#allowableValues}}{{#enumVars}}
if (s == utility::conversions::to_string_t("{{.}}")) m_value = e{{classname}}::{{classname}}_{{.}};{{/values}}{{/allowableValues}} if (s == utility::conversions::to_string_t({{{value}}})) m_value = e{{classname}}::{{classname}}_{{name}};{{/enumVars}}{{/allowableValues}}
} }
void {{classname}}::toMultipart(std::shared_ptr<MultipartFormData> multipart, const utility::string_t& prefix) const void {{classname}}::toMultipart(std::shared_ptr<MultipartFormData> multipart, const utility::string_t& prefix) const
@ -51,8 +51,8 @@ void {{classname}}::toMultipart(std::shared_ptr<MultipartFormData> multipart, co
utility::string_t s; utility::string_t s;
{{#allowableValues}}{{#values}} {{#allowableValues}}{{#enumVars}}
if (m_value == e{{classname}}::{{classname}}_{{.}}) s = utility::conversions::to_string_t("{{.}}");{{/values}}{{/allowableValues}} if (m_value == e{{classname}}::{{classname}}_{{name}}) s = utility::conversions::to_string_t({{{value}}});{{/enumVars}}{{/allowableValues}}
multipart->add(ModelBase::toHttpContent(namePrefix, s)); multipart->add(ModelBase::toHttpContent(namePrefix, s));
} }
@ -70,8 +70,8 @@ void {{classname}}::fromMultiPart(std::shared_ptr<MultipartFormData> multipart,
s = ModelBase::stringFromHttpContent(multipart->getContent(namePrefix)); s = ModelBase::stringFromHttpContent(multipart->getContent(namePrefix));
e{{classname}} v; e{{classname}} v;
{{#allowableValues}}{{#values}} {{#allowableValues}}{{#enumVars}}
if (s == utility::conversions::to_string_t("{{.}}")) v = e{{classname}}::{{classname}}_{{.}};{{/values}}{{/allowableValues}} if (s == utility::conversions::to_string_t({{{value}}})) v = e{{classname}}::{{classname}}_{{name}};{{/enumVars}}{{/allowableValues}}
setValue(v); setValue(v);
} }