mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-03 15:30:59 +00:00
174 lines
4.7 KiB
Plaintext
174 lines
4.7 KiB
Plaintext
{{>licenseInfo}}
|
|
{{#models}}{{#model}}
|
|
#include "{{classname}}.h"
|
|
|
|
#include "SWGHelpers.h"
|
|
|
|
#include <QJsonDocument>
|
|
#include <QJsonArray>
|
|
#include <QObject>
|
|
#include <QDebug>
|
|
|
|
{{#cppNamespaceDeclarations}}
|
|
namespace {{this}} {
|
|
{{/cppNamespaceDeclarations}}
|
|
|
|
{{classname}}::{{classname}}(QString* json) {
|
|
init();
|
|
this->fromJson(*json);
|
|
}
|
|
|
|
{{classname}}::{{classname}}() {
|
|
init();
|
|
}
|
|
|
|
{{classname}}::~{{classname}}() {
|
|
this->cleanup();
|
|
}
|
|
|
|
void
|
|
{{classname}}::init() {
|
|
{{#vars}}
|
|
{{name}} = {{{defaultValue}}};
|
|
{{/vars}}
|
|
}
|
|
|
|
void
|
|
{{classname}}::cleanup() {
|
|
{{#vars}}
|
|
{{#complexType}}
|
|
if({{name}} != nullptr) {
|
|
{{#isContainer}}{{#isListContainer}}QList<{{complexType}}*>* arr = {{name}};{{/isListContainer}}{{#isMapContainer}}QMap<QString, {{complexType}}*>* arr = {{name}};{{/isMapContainer}}
|
|
foreach({{complexType}}* o, *arr) {
|
|
delete o;
|
|
}
|
|
{{/isContainer}}delete {{name}};
|
|
}{{/complexType}}
|
|
{{/vars}}
|
|
}
|
|
|
|
{{classname}}*
|
|
{{classname}}::fromJson(QString &json) {
|
|
QByteArray array (json.toStdString().c_str());
|
|
QJsonDocument doc = QJsonDocument::fromJson(array);
|
|
QJsonObject jsonObject = doc.object();
|
|
this->fromJsonObject(jsonObject);
|
|
return this;
|
|
}
|
|
|
|
void
|
|
{{classname}}::fromJsonObject(QJsonObject &pJson) {
|
|
{{#vars}}
|
|
{{^isContainer}}
|
|
::{{cppNamespace}}::setValue(&{{name}}, pJson["{{baseName}}"], "{{baseType}}", "{{complexType}}");
|
|
{{/isContainer}}
|
|
{{#isListContainer}}
|
|
{{#complexType}}
|
|
::{{cppNamespace}}::setValue(&{{name}}, pJson["{{baseName}}"], "{{baseType}}", "{{complexType}}");
|
|
{{/complexType}}
|
|
{{^complexType}}
|
|
::{{cppNamespace}}::setValue(&{{name}}, pJson["{{baseName}}"], "{{baseType}}", "{{items.baseType}}");
|
|
{{/complexType}}
|
|
{{/isListContainer}}
|
|
{{#isMapContainer}}
|
|
if( pJson["{{baseName}}"].isObject()){
|
|
auto varmap = pJson["{{baseName}}"].toObject().toVariantMap();
|
|
if(varmap.count() > 0){
|
|
for(auto val : varmap.keys() ){
|
|
{
|
|
{{items.baseType}} *{{name}}_item = new {{items.baseType}}();
|
|
auto jsonval = QJsonValue::fromVariant(varmap[val]);
|
|
::{{cppNamespace}}::setValue(&{{name}}_item, jsonval, "{{items.baseType}}", "{{items.baseType}}");
|
|
{{name}}->insert({{name}}->end(), val, {{name}}_item);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{{/isMapContainer}}
|
|
{{/vars}}
|
|
}
|
|
|
|
QString
|
|
{{classname}}::asJson ()
|
|
{
|
|
QJsonObject* obj = this->asJsonObject();
|
|
|
|
QJsonDocument doc(*obj);
|
|
QByteArray bytes = doc.toJson();
|
|
return QString(bytes);
|
|
}
|
|
|
|
QJsonObject*
|
|
{{classname}}::asJsonObject() {
|
|
QJsonObject* obj = new QJsonObject();
|
|
{{#vars}}
|
|
{{#complexType}}
|
|
{{^isContainer}}
|
|
{{#complexType}}
|
|
toJsonValue(QString("{{baseName}}"), {{name}}, obj, QString("{{complexType}}"));
|
|
{{/complexType}}
|
|
{{^complexType}}
|
|
if({{name}} != nullptr && *{{name}} != nullptr) {
|
|
obj->insert("{{name}}", QJsonValue(*{{name}}));
|
|
}
|
|
{{/complexType}}
|
|
{{/isContainer}}
|
|
{{#isListContainer}}
|
|
QJsonArray {{name}}JsonArray;
|
|
toJsonArray((QList<void*>*){{name}}, &{{name}}JsonArray, "{{name}}", "{{complexType}}");
|
|
obj->insert("{{baseName}}", {{name}}JsonArray);
|
|
{{/isListContainer}}
|
|
{{#isMapContainer}}
|
|
QJsonArray {{name}}JsonArray;
|
|
for(auto keyval : {{name}}->keys()){
|
|
QJsonObject {{name}}_jobj;
|
|
toJsonValue(keyval, ((*{{name}})[keyval]), &{{name}}_jobj, "{{complexType}}");
|
|
{{name}}JsonArray.append({{name}}_jobj);
|
|
}
|
|
obj->insert("{{baseName}}", {{name}}JsonArray);
|
|
{{/isMapContainer}}
|
|
{{/complexType}}
|
|
{{^complexType}}
|
|
{{^isContainer}}
|
|
obj->insert("{{baseName}}", QJsonValue({{name}}));
|
|
{{/isContainer}}
|
|
{{#isListContainer}}
|
|
QJsonArray {{name}}JsonArray;
|
|
toJsonArray((QList<void*>*){{name}}, &{{name}}JsonArray, "{{name}}", "{{items.baseType}}");
|
|
obj->insert("{{baseName}}", {{name}}JsonArray);
|
|
{{/isListContainer}}
|
|
{{#isMapContainer}}
|
|
QJsonArray {{name}}JsonArray;
|
|
for(auto keyval : {{name}}->keys()){
|
|
QJsonObject {{name}}_jobj;
|
|
toJsonValue(keyval, ((*{{name}})[keyval]), &{{name}}_jobj, "{{items.baseType}}");
|
|
{{name}}JsonArray.append(portsobj);
|
|
}
|
|
obj->insert("{{baseName}}", {{name}}JsonArray);
|
|
{{/isMapContainer}}
|
|
{{/complexType}}
|
|
{{/vars}}
|
|
|
|
return obj;
|
|
}
|
|
|
|
{{#vars}}
|
|
{{{datatype}}}
|
|
{{classname}}::{{getter}}() {
|
|
return {{name}};
|
|
}
|
|
void
|
|
{{classname}}::{{setter}}({{{datatype}}} {{name}}) {
|
|
this->{{name}} = {{name}};
|
|
}
|
|
|
|
{{/vars}}
|
|
|
|
{{#cppNamespaceDeclarations}}
|
|
}
|
|
{{/cppNamespaceDeclarations}}
|
|
|
|
{{/model}}
|
|
{{/models}}
|