Skip to content

Commit 048fe29

Browse files
authored
Update isSet when the object is received from callback. (#4385)
1 parent f0bcaaf commit 048fe29

File tree

17 files changed

+127
-74
lines changed

17 files changed

+127
-74
lines changed

modules/openapi-generator/src/main/resources/cpp-qt5-client/helpers-header.mustache

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,27 @@
2020
namespace {{this}} {
2121
{{/cppNamespaceDeclarations}}
2222

23+
template <typename T> QString
24+
toStringValue(const QList<T> &val);
25+
26+
template <typename T>
27+
bool fromStringValue(const QList<QString> &inStr, QList<T> &val);
28+
29+
template <typename T>
30+
bool fromStringValue(const QMap<QString, QString> &inStr, QMap<QString, T> &val);
31+
32+
template <typename T>
33+
QJsonValue toJsonValue(const QList<T> &val);
34+
35+
template <typename T>
36+
QJsonValue toJsonValue(const QMap<QString, T> &val);
37+
38+
template <typename T>
39+
bool fromJsonValue(QList<T> &val, const QJsonValue &jval);
40+
41+
template <typename T>
42+
bool fromJsonValue(QMap<QString, T> &val, const QJsonValue &jval);
43+
2344
QString toStringValue(const QString &value);
2445
QString toStringValue(const QDateTime &value);
2546
QString toStringValue(const QByteArray &value);
@@ -128,7 +149,7 @@ namespace {{this}} {
128149
bool fromJsonValue(QList<T> &val, const QJsonValue &jval) {
129150
bool ok = true;
130151
if(jval.isArray()){
131-
for(const auto& jitem : jval.toArray()){
152+
for(const auto jitem : jval.toArray()){
132153
T item;
133154
ok &= fromJsonValue(item, jitem);
134155
val.push_back(item);

modules/openapi-generator/src/main/resources/cpp-qt5-client/model-body.mustache

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

2929
void
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

4140
void
@@ -46,22 +45,27 @@ void
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

5352
void
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()){
@@ -72,6 +76,7 @@ void
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
}

modules/openapi-generator/src/main/resources/cpp-qt5-client/model-header.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public:
5959
virtual bool isValid() const override;
6060

6161
private:
62-
void init();
62+
void initializeModel();
6363
{{^isEnum}}{{#vars}}
6464
{{{dataType}}} {{name}};
6565
bool m_{{name}}_isSet;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.2.0-SNAPSHOT
1+
4.2.1-SNAPSHOT

samples/client/petstore/cpp-qt5/client/OAIApiResponse.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@
2323
namespace OpenAPI {
2424

2525
OAIApiResponse::OAIApiResponse(QString json) {
26-
this->init();
26+
this->initializeModel();
2727
this->fromJson(json);
2828
}
2929

3030
OAIApiResponse::OAIApiResponse() {
31-
this->init();
31+
this->initializeModel();
3232
}
3333

3434
OAIApiResponse::~OAIApiResponse() {
3535

3636
}
3737

3838
void
39-
OAIApiResponse::init() {
39+
OAIApiResponse::initializeModel() {
4040

4141
m_code_isSet = false;
4242
m_code_isValid = false;
@@ -46,7 +46,8 @@ OAIApiResponse::init() {
4646

4747
m_message_isSet = false;
4848
m_message_isValid = false;
49-
}
49+
50+
}
5051

5152
void
5253
OAIApiResponse::fromJson(QString jsonString) {
@@ -60,13 +61,13 @@ void
6061
OAIApiResponse::fromJsonObject(QJsonObject json) {
6162

6263
m_code_isValid = ::OpenAPI::fromJsonValue(code, json[QString("code")]);
63-
64+
m_code_isSet = !json[QString("code")].isNull() && m_code_isValid;
6465

6566
m_type_isValid = ::OpenAPI::fromJsonValue(type, json[QString("type")]);
66-
67+
m_type_isSet = !json[QString("type")].isNull() && m_type_isValid;
6768

6869
m_message_isValid = ::OpenAPI::fromJsonValue(message, json[QString("message")]);
69-
70+
m_message_isSet = !json[QString("message")].isNull() && m_message_isValid;
7071

7172
}
7273

samples/client/petstore/cpp-qt5/client/OAIApiResponse.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class OAIApiResponse: public OAIObject {
5959
virtual bool isValid() const override;
6060

6161
private:
62-
void init();
62+
void initializeModel();
6363

6464
qint32 code;
6565
bool m_code_isSet;

samples/client/petstore/cpp-qt5/client/OAICategory.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,28 @@
2323
namespace OpenAPI {
2424

2525
OAICategory::OAICategory(QString json) {
26-
this->init();
26+
this->initializeModel();
2727
this->fromJson(json);
2828
}
2929

3030
OAICategory::OAICategory() {
31-
this->init();
31+
this->initializeModel();
3232
}
3333

3434
OAICategory::~OAICategory() {
3535

3636
}
3737

3838
void
39-
OAICategory::init() {
39+
OAICategory::initializeModel() {
4040

4141
m_id_isSet = false;
4242
m_id_isValid = false;
4343

4444
m_name_isSet = false;
4545
m_name_isValid = false;
46-
}
46+
47+
}
4748

4849
void
4950
OAICategory::fromJson(QString jsonString) {
@@ -57,10 +58,10 @@ void
5758
OAICategory::fromJsonObject(QJsonObject json) {
5859

5960
m_id_isValid = ::OpenAPI::fromJsonValue(id, json[QString("id")]);
60-
61+
m_id_isSet = !json[QString("id")].isNull() && m_id_isValid;
6162

6263
m_name_isValid = ::OpenAPI::fromJsonValue(name, json[QString("name")]);
63-
64+
m_name_isSet = !json[QString("name")].isNull() && m_name_isValid;
6465

6566
}
6667

samples/client/petstore/cpp-qt5/client/OAICategory.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class OAICategory: public OAIObject {
5555
virtual bool isValid() const override;
5656

5757
private:
58-
void init();
58+
void initializeModel();
5959

6060
qint64 id;
6161
bool m_id_isSet;

samples/client/petstore/cpp-qt5/client/OAIHelpers.h

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,27 @@
2929

3030
namespace OpenAPI {
3131

32+
template <typename T> QString
33+
toStringValue(const QList<T> &val);
34+
35+
template <typename T>
36+
bool fromStringValue(const QList<QString> &inStr, QList<T> &val);
37+
38+
template <typename T>
39+
bool fromStringValue(const QMap<QString, QString> &inStr, QMap<QString, T> &val);
40+
41+
template <typename T>
42+
QJsonValue toJsonValue(const QList<T> &val);
43+
44+
template <typename T>
45+
QJsonValue toJsonValue(const QMap<QString, T> &val);
46+
47+
template <typename T>
48+
bool fromJsonValue(QList<T> &val, const QJsonValue &jval);
49+
50+
template <typename T>
51+
bool fromJsonValue(QMap<QString, T> &val, const QJsonValue &jval);
52+
3253
QString toStringValue(const QString &value);
3354
QString toStringValue(const QDateTime &value);
3455
QString toStringValue(const QByteArray &value);
@@ -137,7 +158,7 @@ namespace OpenAPI {
137158
bool fromJsonValue(QList<T> &val, const QJsonValue &jval) {
138159
bool ok = true;
139160
if(jval.isArray()){
140-
for(const auto& jitem : jval.toArray()){
161+
for(const auto jitem : jval.toArray()){
141162
T item;
142163
ok &= fromJsonValue(item, jitem);
143164
val.push_back(item);

samples/client/petstore/cpp-qt5/client/OAIOrder.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@
2323
namespace OpenAPI {
2424

2525
OAIOrder::OAIOrder(QString json) {
26-
this->init();
26+
this->initializeModel();
2727
this->fromJson(json);
2828
}
2929

3030
OAIOrder::OAIOrder() {
31-
this->init();
31+
this->initializeModel();
3232
}
3333

3434
OAIOrder::~OAIOrder() {
3535

3636
}
3737

3838
void
39-
OAIOrder::init() {
39+
OAIOrder::initializeModel() {
4040

4141
m_id_isSet = false;
4242
m_id_isValid = false;
@@ -55,7 +55,8 @@ OAIOrder::init() {
5555

5656
m_complete_isSet = false;
5757
m_complete_isValid = false;
58-
}
58+
59+
}
5960

6061
void
6162
OAIOrder::fromJson(QString jsonString) {
@@ -69,22 +70,22 @@ void
6970
OAIOrder::fromJsonObject(QJsonObject json) {
7071

7172
m_id_isValid = ::OpenAPI::fromJsonValue(id, json[QString("id")]);
72-
73+
m_id_isSet = !json[QString("id")].isNull() && m_id_isValid;
7374

7475
m_pet_id_isValid = ::OpenAPI::fromJsonValue(pet_id, json[QString("petId")]);
75-
76+
m_pet_id_isSet = !json[QString("petId")].isNull() && m_pet_id_isValid;
7677

7778
m_quantity_isValid = ::OpenAPI::fromJsonValue(quantity, json[QString("quantity")]);
78-
79+
m_quantity_isSet = !json[QString("quantity")].isNull() && m_quantity_isValid;
7980

8081
m_ship_date_isValid = ::OpenAPI::fromJsonValue(ship_date, json[QString("shipDate")]);
81-
82+
m_ship_date_isSet = !json[QString("shipDate")].isNull() && m_ship_date_isValid;
8283

8384
m_status_isValid = ::OpenAPI::fromJsonValue(status, json[QString("status")]);
84-
85+
m_status_isSet = !json[QString("status")].isNull() && m_status_isValid;
8586

8687
m_complete_isValid = ::OpenAPI::fromJsonValue(complete, json[QString("complete")]);
87-
88+
m_complete_isSet = !json[QString("complete")].isNull() && m_complete_isValid;
8889

8990
}
9091

0 commit comments

Comments
 (0)