{{className}}::{{className}}() {} {{#if hasRequiredProperties}} {{className}}::{{className}} ( {{#each properties as |property|}} {{#if property.isNotNullable}} {{property.typeNameWithQualifiers}} {{property.name}}{{#if property.isLastNonNullable}} {{else}}, {{/if}} {{/if}} {{/each}} ) : {{#each properties as |property|}} {{#if property.isNotNullable}} {{property.memberName}}({{property.name}}) {{#if property.isLastNonNullable}} { } {{else}} , {{/if}} {{/if}} {{/each}} {{/if}} {{className}}::{{className}}(const {{className}} &other) : {{#each properties as |property|}} {{property.memberName}}(other.{{property.memberName}}) {{#if property.isLast}} {} {{else}} , {{/if}} {{/each}} void {{className}}::replaceData({{className}} &other) { {{#each properties as |property|}} {{property.memberName}} = other.{{property.memberName}}; {{/each}} } {{className}} {{className}}::fromJson(QJsonObject source) { {{className}} instance; instance.setFromJson(source); return instance; } void {{className}}::setFromJson(QJsonObject source) { {{#each properties as |property|}} {{property.memberName}} = {{supportNamespace}}::fromJsonValue<{{property.typeNameWithQualifiers}}>(source["{{property.originalName}}"]); {{/each}} } QJsonObject {{className}}::toJson() const { QJsonObject result; {{#each properties as |property|}} {{#if property.isNullable}} if (!({{property.nullableCheck}})) { result["{{property.originalName}}"] = {{supportNamespace}}::toJsonValue<{{property.typeNameWithQualifiers}}>({{property.memberName}}); } {{#else}} result["{{property.originalName}}"] = {{supportNamespace}}::toJsonValue<{{property.typeNameWithQualifiers}}>({{property.memberName}}); {{/if}} {{/each}} return result; } {{#each properties as |property|}} {{property.typeNameWithQualifiers}} {{className}}::{{property.name}}() const { return {{property.memberName}}; } void {{className}}::set{{property.writeName}}({{property.typeNameWithQualifiers}} new{{property.writeName}}) { {{property.memberName}} = new{{property.writeName}}; } {{#if property.isNullable}} bool {{className}}::{{property.name}}Null() const { return {{property.nullableCheck}}; } void {{className}}::set{{property.writeName}}Null() { {{property.memberName}}{{property.nullableSetter}}; } {{/if}} {{/each}} } // NS DTO namespace Support { using {{className}} = Jellyfin::DTO::{{className}}; template <> {{className}} fromJsonValue(const QJsonValue &source, convertType<{{className}}>) { if (!source.isObject()) throw ParseException("Expected JSON Object"); return {{className}}::fromJson(source.toObject()); } template<> QJsonValue toJsonValue(const {{className}} &source, convertType<{{className}}>) { return source.toJson(); }