@@ -14,28 +14,27 @@ namespace {{this}} {
1414{{/cppNamespaceDeclarations} }
1515
1616{ {classname} }::{ {classname} }(QString json) {
17- this-> init ();
17+ this-> initializeModel ();
1818 this-> fromJson (json);
1919}
2020
2121{ {classname} }::{ {classname} }() {
22- this-> init ();
22+ this-> initializeModel ();
2323}
2424
2525{ {classname} }::~{ {classname} }() {
2626
2727}
2828
2929void
30- { {classname} }::init () {
30+ { {classname} }::initializeModel () {
3131 {{^isEnum} }{ {#vars} }
3232 m_{ {name} }_isSet = false;
3333 m_{ {name} }_isValid = false;
3434 { {/vars} }{ {/isEnum} }{ {#isEnum} }
3535 m_value_isSet = false;
3636 m_value_isValid = false;
37- m_value = e{ {classname} }::INVALID_VALUE_OPENAPI_GENERATED;
38- { {/isEnum} }
37+ m_value = e{ {classname} }::INVALID_VALUE_OPENAPI_GENERATED;{ {/isEnum} }
3938}
4039
4140void
4645 this->fromJsonObject(jsonObject);{ {/isEnum} }{ {#isEnum} }{ {#allowableValues} }{ {#enumVars} }
4746 { {#-first} }if{ {/-first} }{ {^-first} }else if{ {/-first} } ( jsonString.compare({ {#isString} }"{ {value} }"{ {/isString} }{ {^isString} }QString::number({ {value} }){ {/isString} }, Qt::CaseInsensitive) == 0) {
4847 m_value = e{{classname} }::{ {name} };
49- m_value_isValid = true;
48+ m_value_isSet = m_value_isValid = true;
5049 }{ {/enumVars} }{ {/allowableValues} }{ {/isEnum} }
5150}
5251
5352void
5453{ {classname} }::fromJson{ {^isEnum} }Object{ {/isEnum} }{ {#isEnum} }Value{ {/isEnum} }(QJson{ {^isEnum} }Object{ {/isEnum} }{ {#isEnum} }Value{ {/isEnum} } json) {
55- {{^isEnum} }{ {#vars} }
56- { {^isContainer} }m_{ {name} }_isValid = ::{ {cppNamespace} }::fromJsonValue({ {name} }, json[QString("{ {baseName} }")]);{ {/isContainer} }
57- { {#isContainer} }{ {^items.isContainer} }m_{ {name} }_isValid = ::{ {cppNamespace} }::fromJsonValue({ {name} }, json[QString("{ {baseName} }")]);{ {/items.isContainer} }{ {#items.isContainer} }{ {#isListContainer} }
54+ {{^isEnum} }{ {#vars} }{ {^isContainer} }
55+ m_{ {name} }_isValid = ::{ {cppNamespace} }::fromJsonValue({ {name} }, json[QString("{ {baseName} }")]);
56+ m_{ {name} }_isSet = !json[QString("{ {baseName} }")].isNull() && m_{ {name} }_isValid;{ {/isContainer} }{ {#isContainer} }{ {^items.isContainer} }
57+ m_{ {name} }_isValid = ::{ {cppNamespace} }::fromJsonValue({ {name} }, json[QString("{ {baseName} }")]);
58+ m_{ {name} }_isSet = !json[QString("{ {baseName} }")].isNull() && m_{ {name} }_isValid;{ {/items.isContainer} }{ {#items.isContainer} }{ {#isListContainer} }
5859 if(json["{ {baseName} }"].isArray()){
5960 auto arr = json[" {{baseName}}" ].toArray();
6061 m_{{name} }_isValid = true;
61- for (const QJsonValue & jval : arr) {
62- {{^items.isContainer} }{ {items.baseType} }{ {/items.isContainer} }{ {#items.isListContainer} }QList<{ {items.items.baseType} }>{ {/items.isListContainer} }{ {#items.isMapContainer} }QMap<QString , { { items.items.baseType} } >{ {/items.isMapContainer} } item;
63- m_{ {name} }_isValid & = ::{ {cppNamespace} }::fromJsonValue(item, jval)
64- { {name} }.push_back(item);
62+ if(arr.count() > 0) {
63+ for (const QJsonValue jval : arr) {
64+ {{^items.isContainer} }{ {items.baseType} }{ {/items.isContainer} }{ {#items.isListContainer} }QList<{ {items.items.baseType} }>{ {/items.isListContainer} }{ {#items.isMapContainer} }QMap<QString , { { items.items.baseType} } >{ {/items.isMapContainer} } item;
65+ m_{ {name} }_isValid & = ::{ {cppNamespace} }::fromJsonValue(item, jval);
66+ m_{ {name} }_isSet = !jval.isNull() && m_{ {name} }_isValid;
67+ { {name} }.push_back(item);
68+ }
6569 }
6670 }{ {/isListContainer} }{ {#isMapContainer} }
6771 if(json["{ {baseName} }"].isObject()){
7276 {{^items.isContainer} }{ {items.baseType} }{ {/items.isContainer} }{ {#items.isListContainer} }QList<{ {items.items.baseType} }>{ {/items.isListContainer} }{ {#items.isMapContainer} }QMap<QString , { { items.items.baseType} } >{ {/items.isMapContainer} } item;
7377 auto jval = QJsonValue::fromVariant(varmap.value(val));
7478 m_{ {name} }_isValid & = ::{ {cppNamespace} }::fromJsonValue(item, jval);
79+ m_{ {name} }_isSet & = !jval.isNull() && m_{ {name} }_isValid;
7580 { {name} }.insert({ {name} }.end(), val, item);
7681 }
7782 }
0 commit comments