open5gs/lib/sbi/support/20210629/openapi-generator/templates/model-body.mustache

926 lines
34 KiB
Plaintext

{{#models}}{{#model}}
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "{{classname}}.h"
{{#isEnum}}
char* OpenAPI_{{classname}}_ToString(OpenAPI_{{classVarName}}_e {{classname}})
{
const char *{{classname}}Array[] = { "NULL"{{#allowableValues}}{{#enumVars}}, "{{{value}}}"{{/enumVars}}{{/allowableValues}} };
size_t sizeofArray = sizeof({{classname}}Array) / sizeof({{classname}}Array[0]);
if ({{classname}} < sizeofArray)
return (char *){{classname}}Array[{{classname}}];
else
return (char *)"Unknown";
}
OpenAPI_{{classVarName}}_e OpenAPI_{{classname}}_FromString(char* {{classname}})
{
int stringToReturn = 0;
const char *{{classname}}Array[] = { "NULL"{{#allowableValues}}{{#enumVars}}, "{{{value}}}"{{/enumVars}}{{/allowableValues}} };
size_t sizeofArray = sizeof({{classname}}Array) / sizeof({{classname}}Array[0]);
while (stringToReturn < sizeofArray) {
if (strcmp({{classname}}, {{classname}}Array[stringToReturn]) == 0) {
return stringToReturn;
}
stringToReturn++;
}
return 0;
}
{{/isEnum}}
{{^isEnum}}
{{#vars}}
{{^isContainer}}
{{#isPrimitiveType}}
{{#isEnum}}
char *OpenAPI_{{name}}{{classname}}_ToString(OpenAPI_{{classVarName}}_{{name}}_e {{name}})
{
const char *{{name}}Array[] = { "NULL"{{#allowableValues}}{{#enumVars}}, "{{{value}}}"{{/enumVars}}{{/allowableValues}} };
size_t sizeofArray = sizeof({{name}}Array) / sizeof({{name}}Array[0]);
if ({{name}} < sizeofArray)
return (char *){{name}}Array[{{name}}];
else
return (char *)"Unknown";
}
OpenAPI_{{classVarName}}_{{name}}_e OpenAPI_{{name}}{{classname}}_FromString(char* {{name}})
{
int stringToReturn = 0;
const char *{{name}}Array[] = { "NULL"{{#allowableValues}}{{#enumVars}}, "{{{value}}}"{{/enumVars}}{{/allowableValues}} };
size_t sizeofArray = sizeof({{name}}Array) / sizeof({{name}}Array[0]);
while (stringToReturn < sizeofArray) {
if (strcmp({{name}}, {{name}}Array[stringToReturn]) == 0) {
return stringToReturn;
}
stringToReturn++;
}
return 0;
}
{{/isEnum}}
{{/isPrimitiveType}}
{{/isContainer}}
{{/vars}}
OpenAPI_{{classname}}_t *OpenAPI_{{classname}}_create(
{{#vars}}
{{^isContainer}}
{{^isPrimitiveType}}
{{#isEnum}}
OpenAPI_{{datatype}}_e {{name}}{{^-last}},{{/-last}}
{{/isEnum}}
{{^isEnum}}
{{#isModel}}
OpenAPI_{{datatype}}_t *{{name}}{{^-last}},{{/-last}}
{{/isModel}}
{{#isUuid}}
{{datatype}} *{{name}}{{^-last}},{{/-last}}
{{/isUuid}}
{{#isEmail}}
{{datatype}} *{{name}}{{^-last}},{{/-last}}
{{/isEmail}}
{{#isFreeFormObject}}
OpenAPI_{{datatype}}_t *{{name}}{{^-last}},{{/-last}}
{{/isFreeFormObject}}
{{/isEnum}}
{{/isPrimitiveType}}
{{#isPrimitiveType}}
{{#isEnum}}
OpenAPI_{{classVarName}}_{{name}}_e {{name}}{{^-last}},{{/-last}}
{{/isEnum}}
{{^isEnum}}
{{#isNumeric}}
{{^required}}
bool is_{{name}},
{{/required}}
{{datatype}} {{name}}{{^-last}},{{/-last}}
{{/isNumeric}}
{{#isBoolean}}
{{^required}}
bool is_{{name}},
{{/required}}
{{datatype}} {{name}}{{^-last}},{{/-last}}
{{/isBoolean}}
{{#isString}}
{{datatype}} *{{name}}{{^-last}},{{/-last}}
{{/isString}}
{{/isEnum}}
{{#isByteArray}}
{{datatype}} {{name}}{{^-last}},{{/-last}}
{{/isByteArray}}
{{#isBinary}}
OpenAPI_{{datatype}} {{name}}{{^-last}},{{/-last}}
{{/isBinary}}
{{#isDate}}
{{datatype}} *{{name}}{{^-last}},{{/-last}}
{{/isDate}}
{{#isDateTime}}
{{datatype}} *{{name}}{{^-last}},{{/-last}}
{{/isDateTime}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isArray}}
OpenAPI_{{datatype}}_t *{{name}}{{^-last}},{{/-last}}
{{/isArray}}
{{#isMap}}
OpenAPI_{{datatype}} {{name}}{{^-last}},{{/-last}}
{{/isMap}}
{{/isContainer}}
{{/vars}})
{
OpenAPI_{{classname}}_t *{{classname}}_local_var = OpenAPI_malloc(sizeof(OpenAPI_{{classname}}_t));
if (!{{classname}}_local_var) {
return NULL;
}
{{#vars}}
{{^isContainer}}
{{#isPrimitiveType}}
{{^isEnum}}
{{#isNumeric}}
{{^required}}
{{classname}}_local_var->is_{{{name}}} = is_{{{name}}};
{{/required}}
{{/isNumeric}}
{{#isBoolean}}
{{^required}}
{{classname}}_local_var->is_{{{name}}} = is_{{{name}}};
{{/required}}
{{/isBoolean}}
{{/isEnum}}
{{/isPrimitiveType}}
{{/isContainer}}
{{classname}}_local_var->{{{name}}} = {{{name}}};
{{/vars}}
return {{classname}}_local_var;
}
void OpenAPI_{{classname}}_free(OpenAPI_{{classname}}_t *{{classname}})
{
if (NULL == {{classname}}) {
return;
}
OpenAPI_lnode_t *node;
{{#vars}}
{{^isContainer}}
{{^isPrimitiveType}}
{{^isEnum}}
{{#isModel}}
OpenAPI_{{{complexType}}}_free({{{classname}}}->{{{name}}});
{{/isModel}}
{{#isUuid}}
ogs_free({{{classname}}}->{{{name}}});
{{/isUuid}}
{{#isEmail}}
ogs_free({{{classname}}}->{{{name}}});
{{/isEmail}}
{{#isFreeFormObject}}
OpenAPI_object_free({{{classname}}}->{{{name}}});
{{/isFreeFormObject}}
{{/isEnum}}
{{/isPrimitiveType}}
{{#isPrimitiveType}}
{{^isEnum}}
{{#isString}}
ogs_free({{{classname}}}->{{{name}}});
{{/isString}}
{{/isEnum}}
{{#isBinary}}
ogs_free({{{classname}}}->{{{name}}}->data);
{{/isBinary}}
{{#isDate}}
ogs_free({{{classname}}}->{{{name}}});
{{/isDate}}
{{#isDateTime}}
ogs_free({{{classname}}}->{{{name}}});
{{/isDateTime}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isArray}}
{{#isPrimitiveType}}
{{^isEnum}}
OpenAPI_list_for_each({{classname}}->{{name}}, node) {
ogs_free(node->data);
}
{{/isEnum}}
OpenAPI_list_free({{classname}}->{{name}});
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{^isEnum}}
OpenAPI_list_for_each({{classname}}->{{name}}, node) {
OpenAPI_{{complexType}}_free(node->data);
}
{{/isEnum}}
OpenAPI_list_free({{classname}}->{{name}});
{{/isPrimitiveType}}
{{/isArray}}
{{#isMap}}
{{#isPrimitiveType}}
OpenAPI_list_for_each({{classname}}->{{name}}, node) {
OpenAPI_map_t *localKeyValue = (OpenAPI_map_t*)node->data;
ogs_free(localKeyValue->value);
ogs_free(localKeyValue);
}
OpenAPI_list_free({{classname}}->{{name}});
{{/isPrimitiveType}}
{{^isPrimitiveType}}
OpenAPI_list_for_each({{classname}}->{{name}}, node) {
OpenAPI_map_t *localKeyValue = (OpenAPI_map_t*)node->data;
OpenAPI_{{complexType}}_free(localKeyValue->value);
ogs_free(localKeyValue);
}
OpenAPI_list_free({{classname}}->{{name}});
{{/isPrimitiveType}}
{{/isMap}}
{{/isContainer}}
{{/vars}}
ogs_free({{classname}});
}
cJSON *OpenAPI_{{classname}}_convertToJSON(OpenAPI_{{classname}}_t *{{classname}})
{
cJSON *item = NULL;
if ({{classname}} == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
return NULL;
}
item = cJSON_CreateObject();
{{#vars}}
{{^isContainer}}
{{#isPrimitiveType}}
{{#isEnum}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
if (cJSON_AddStringToObject(item, "{{{baseName}}}", OpenAPI_{{{name}}}{{classname}}_ToString({{{classname}}}->{{{name}}})) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isEnum}}
{{^isEnum}}
{{#isNumeric}}
{{^required}}
if ({{{classname}}}->is_{{{name}}}) {
{{/required}}
if (cJSON_AddNumberToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isNumeric}}
{{#isBoolean}}
{{^required}}
if ({{{classname}}}->is_{{{name}}}) {
{{/required}}
if (cJSON_AddBoolToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isBoolean}}
{{#isString}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
if (cJSON_AddStringToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isString}}
{{/isEnum}}
{{#isByteArray}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
if (cJSON_AddNumberToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isByteArray}}
{{#isBinary}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
char* encoded_str_{{{name}}} = OpenAPI_base64encode({{{classname}}}->{{{name}}}->data,{{{classname}}}->{{{name}}}->len);
if (cJSON_AddStringToObject(item, "{{{baseName}}}", encoded_str_{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
ogs_free(encoded_str_{{{name}}});
{{/isBinary}}
{{#isDate}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
if (cJSON_AddStringToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isDate}}
{{#isDateTime}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
if (cJSON_AddStringToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isDateTime}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{#isEnum}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
if (cJSON_AddStringToObject(item, "{{{baseName}}}", OpenAPI_{{{complexType}}}_ToString({{{classname}}}->{{{name}}})) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isEnum}}
{{^isEnum}}
{{#isModel}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
cJSON *{{{name}}}_local_JSON = OpenAPI_{{complexType}}{{#isFreeFormObject}}object{{/isFreeFormObject}}_convertToJSON({{{classname}}}->{{{name}}});
if ({{{name}}}_local_JSON == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
cJSON_AddItemToObject(item, "{{{baseName}}}", {{{name}}}_local_JSON);
if (item->child == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isModel}}
{{#isUuid}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
if (cJSON_AddStringToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isUuid}}
{{#isEmail}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
if (cJSON_AddStringToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isEmail}}
{{#isFreeFormObject}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
cJSON *{{{name}}}_object = OpenAPI_object_convertToJSON({{{classname}}}->{{{name}}});
if ({{{name}}}_object == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
cJSON_AddItemToObject(item, "{{{baseName}}}", {{{name}}}_object);
if (item->child == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isFreeFormObject}}
{{/isEnum}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isArray}}
{{#isPrimitiveType}}
{{^isEnum}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
cJSON *{{{name}}} = cJSON_AddArrayToObject(item, "{{{baseName}}}");
if ({{{name}}} == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
OpenAPI_lnode_t *{{{name}}}_node;
OpenAPI_list_for_each({{{classname}}}->{{{name}}}, {{{name}}}_node) {
{{#items}}
{{#isString}}
if (cJSON_AddStringToObject({{{name}}}, "", (char*){{{name}}}_node->data) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isString}}
{{#isBoolean}}
if (cJSON_AddBoolToObject({{{name}}}, "", *(cJSON_bool *){{{name}}}_node->data) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isBoolean}}
{{#isNumeric}}
if (cJSON_AddNumberToObject({{{name}}}, "", *(double *){{{name}}}_node->data) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isNumeric}}
{{/items}}
}
{{/isEnum}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{^isEnum}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
cJSON *{{{name}}}List = cJSON_AddArrayToObject(item, "{{{baseName}}}");
if ({{{name}}}List == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
OpenAPI_lnode_t *{{{name}}}_node;
if ({{{classname}}}->{{{name}}}) {
OpenAPI_list_for_each({{classname}}->{{{name}}}, {{{name}}}_node) {
cJSON *itemLocal = OpenAPI_{{complexType}}_convertToJSON({{#isEnum}}{{#items}}(intptr_t){{/items}}{{/isEnum}}{{{name}}}_node->data);
if (itemLocal == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
cJSON_AddItemToArray({{{name}}}List, itemLocal);
}
}
{{/isEnum}}
{{#isEnum}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
cJSON *{{{name}}} = cJSON_AddArrayToObject(item, "{{{baseName}}}");
if ({{{name}}} == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
OpenAPI_lnode_t *{{{name}}}_node;
OpenAPI_list_for_each({{classname}}->{{{name}}}, {{{name}}}_node) {
if (cJSON_AddStringToObject({{{name}}}, "", OpenAPI_{{{complexType}}}_ToString((intptr_t){{{name}}}_node->data)) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
}
{{/isEnum}}
{{/isPrimitiveType}}
{{/isArray}}
{{#isMap}}
{{^required}}
if ({{{classname}}}->{{{name}}}) {
{{/required}}
cJSON *{{{name}}} = cJSON_AddObjectToObject(item, "{{{baseName}}}");
if ({{{name}}} == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
cJSON *localMapObject = {{{name}}};
OpenAPI_lnode_t *{{{name}}}_node;
if ({{{classname}}}->{{{name}}}) {
OpenAPI_list_for_each({{{classname}}}->{{{name}}}, {{{name}}}_node) {
OpenAPI_map_t *localKeyValue = (OpenAPI_map_t*){{{name}}}_node->data;
{{#isPrimitiveType}}
{{#isString}}
if (cJSON_AddStringToObject(localMapObject, localKeyValue->key, (char*)localKeyValue->value) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isString}}
{{#isNumeric}}
if (cJSON_AddNumberToObject(localMapObject, localKeyValue->key, *(double *)localKeyValue->value) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isNumeric}}
{{#isBoolean}}
if (cJSON_AddBoolToObject(localMapObject, localKeyValue->key, *(cJSON_bool *)localKeyValue->value) == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
{{/isBoolean}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
cJSON *itemLocal = localKeyValue->value ?
OpenAPI_{{complexType}}_convertToJSON(localKeyValue->value) :
cJSON_CreateNull();
if (itemLocal == NULL) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed [{{{name}}}]");
goto end;
}
cJSON_AddItemToObject({{{name}}}, localKeyValue->key, itemLocal);
{{/isPrimitiveType}}
}
}
{{/isMap}}
{{/isContainer}}
{{^required}}
}
{{/required}}
{{/vars}}
end:
return item;
}
OpenAPI_{{classname}}_t *OpenAPI_{{classname}}_parseFromJSON(cJSON *{{classname}}JSON)
{
OpenAPI_{{classname}}_t *{{classname}}_local_var = NULL;
{{#vars}}
cJSON *{{{name}}} = cJSON_GetObjectItemCaseSensitive({{classname}}JSON, "{{{baseName}}}");
{{#required}}
if (!{{{name}}}) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/required}}
{{^isContainer}}
{{#isPrimitiveType}}
{{#isEnum}}
OpenAPI_{{classVarName}}_{{name}}_e {{name}}Variable;
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsString({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{name}}Variable = OpenAPI_{{name}}{{classname}}_FromString({{{name}}}->valuestring);
{{/isEnum}}
{{^isEnum}}
{{#isNumeric}}
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsNumber({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isNumeric}}
{{#isBoolean}}
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsBool({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isBoolean}}
{{#isString}}
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsString({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isString}}
{{/isEnum}}
{{#isByteArray}}
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsNumber({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isByteArray}}
{{#isBinary}}
OpenAPI_binary_t* decoded_str_{{{name}}} = OpenAPI_malloc(sizeof(OpenAPI_binary_t));
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsString({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
decoded_str_{{{name}}}->data = OpenAPI_base64decode({{{name}}}->valuestring, strlen({{{name}}}->valuestring), &decoded_str_{{{name}}}->len);
if (!decoded_str_{{{name}}}->data) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isBinary}}
{{#isDate}}
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsString({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isDate}}
{{#isDateTime}}
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsString({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isDateTime}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{#isEnum}}
OpenAPI_{{complexType}}_e {{name}}Variable;
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsString({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{name}}Variable = OpenAPI_{{complexType}}_FromString({{{name}}}->valuestring);
{{/isEnum}}
{{^isEnum}}
{{#isModel}}
{{^isFreeFormObject}}OpenAPI_{{complexType}}{{/isFreeFormObject}}{{#isFreeFormObject}}OpenAPI_object{{/isFreeFormObject}}_t *{{name}}_local_nonprim = NULL;
{{^required}}
if ({{{name}}}) {
{{/required}}
{{{name}}}_local_nonprim = OpenAPI_{{complexType}}{{#isFreeFormObject}}object{{/isFreeFormObject}}_parseFromJSON({{{name}}});
{{/isModel}}
{{#isUuid}}
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsString({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isUuid}}
{{#isEmail}}
{{^required}}
if ({{{name}}}) {
{{/required}}
if (!cJSON_IsString({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isEmail}}
{{#isFreeFormObject}}
OpenAPI_object_t *{{name}}_local_object = NULL;
{{^required}}
if ({{{name}}}) {
{{/required}}
{{{name}}}_local_object = OpenAPI_object_parseFromJSON({{{name}}});
{{/isFreeFormObject}}
{{/isEnum}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isArray}}
{{#isPrimitiveType}}
{{^isEnum}}
OpenAPI_list_t *{{{name}}}List;
{{^required}}
if ({{{name}}}) {
{{/required}}
cJSON *{{{name}}}_local;
if (!cJSON_IsArray({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{{name}}}List = OpenAPI_list_create();
cJSON_ArrayForEach({{{name}}}_local, {{{name}}}) {
{{#items}}
{{#isString}}
if (!cJSON_IsString({{{name}}}_local)) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
OpenAPI_list_add({{{name}}}List , ogs_strdup_or_assert({{{name}}}_local->valuestring));
{{/isString}}
{{#isNumeric}}
if (!cJSON_IsNumber({{{name}}}_local)) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
OpenAPI_list_add({{{name}}}List , &{{{name}}}_local->valuedouble);
{{/isNumeric}}
{{#isBoolean}}
if (!cJSON_IsBool({{{name}}}_local)) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
OpenAPI_list_add({{{name}}}List , {{{name}}}_local->valueint);
{{/isBoolean}}
{{/items}}
}
{{/isEnum}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{^isEnum}}
OpenAPI_list_t *{{{name}}}List;
{{^required}}
if ({{{name}}}) {
{{/required}}
cJSON *{{{name}}}_local_nonprimitive;
if (!cJSON_IsArray({{{name}}})){
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{{name}}}List = OpenAPI_list_create();
cJSON_ArrayForEach({{{name}}}_local_nonprimitive, {{{name}}} ) {
if (!cJSON_IsObject({{{name}}}_local_nonprimitive)) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{#isEnum}}{{#items}}{{datatypeWithEnum}}_e {{/items}}{{/isEnum}}{{^isEnum}}OpenAPI_{{complexType}}_t *{{/isEnum}}{{{name}}}Item = OpenAPI_{{complexType}}_parseFromJSON({{{name}}}_local_nonprimitive);
OpenAPI_list_add({{{name}}}List, {{#isEnum}}{{#items}}(void *){{/items}}{{/isEnum}}{{{name}}}Item);
}
{{/isEnum}}
{{#isEnum}}
OpenAPI_list_t *{{{name}}}List;
{{^required}}
if ({{{name}}}) {
{{/required}}
cJSON *{{{name}}}_local_nonprimitive;
if (!cJSON_IsArray({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{{name}}}List = OpenAPI_list_create();
cJSON_ArrayForEach({{{name}}}_local_nonprimitive, {{{name}}} ) {
if (!cJSON_IsString({{{name}}}_local_nonprimitive)){
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
OpenAPI_list_add({{{name}}}List, (void *)OpenAPI_{{{complexType}}}_FromString({{{name}}}_local_nonprimitive->valuestring));
}
{{/isEnum}}
{{/isPrimitiveType}}
{{/isArray}}
{{#isMap}}
OpenAPI_list_t *{{{name}}}List;
{{^required}}
if ({{{name}}}) {
{{/required}}
cJSON *{{{name}}}_local_map;
if (!cJSON_IsObject({{{name}}})) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{{name}}}List = OpenAPI_list_create();
OpenAPI_map_t *localMapKeyPair = NULL;
cJSON_ArrayForEach({{{name}}}_local_map, {{{name}}}) {
cJSON *localMapObject = {{{name}}}_local_map;
{{#isPrimitiveType}}
{{#isString}}
if (!cJSON_IsString(localMapObject)) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
localMapKeyPair = OpenAPI_map_create(ogs_strdup_or_assert(localMapObject->string),ogs_strdup_or_assert(localMapObject->valuestring));
{{/isString}}
{{#isBoolean}}
if (!cJSON_IsBool(localMapObject)) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
localMapKeyPair = OpenAPI_map_create(ogs_strdup_or_assert(localMapObject->string), &localMapObject->valueint);
{{/isBoolean}}
{{#isNumeric}}
if (!cJSON_IsNumber(localMapObject)) {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
localMapKeyPair = OpenAPI_map_create(ogs_strdup_or_assert(localMapObject->string),&localMapObject->valuedouble );
{{/isNumeric}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
if (cJSON_IsObject({{{name}}}_local_map)) {
localMapKeyPair = OpenAPI_map_create(
localMapObject->string, OpenAPI_{{complexType}}_parseFromJSON(localMapObject));
} else if (cJSON_IsNull({{{name}}}_local_map)) {
localMapKeyPair = OpenAPI_map_create(localMapObject->string, NULL);
} else {
ogs_error("OpenAPI_{{classname}}_parseFromJSON() failed [{{{name}}}]");
goto end;
}
{{/isPrimitiveType}}
OpenAPI_list_add({{{name}}}List , localMapKeyPair);
}
{{/isMap}}
{{/isContainer}}
{{^required}}
}
{{/required}}
{{/vars}}
{{classname}}_local_var = OpenAPI_{{classname}}_create (
{{#vars}}
{{^isContainer}}
{{^isPrimitiveType}}
{{#isEnum}}
{{^required}}{{{name}}} ? {{/required}}{{{name}}}Variable{{^required}} : 0{{/required}}{{^-last}},{{/-last}}
{{/isEnum}}
{{^isEnum}}
{{#isModel}}
{{^required}}{{{name}}} ? {{/required}}{{{name}}}_local_nonprim{{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isModel}}
{{#isUuid}}
{{^required}}{{{name}}} ? {{/required}}ogs_strdup_or_assert({{{name}}}->valuestring){{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isUuid}}
{{#isEmail}}
{{^required}}{{{name}}} ? {{/required}}ogs_strdup_or_assert({{{name}}}->valuestring){{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isEmail}}
{{#isFreeFormObject}}
{{^required}}{{{name}}} ? {{/required}}{{{name}}}_local_object{{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isFreeFormObject}}
{{/isEnum}}
{{/isPrimitiveType}}
{{#isPrimitiveType}}
{{#isEnum}}
{{^required}}{{{name}}} ? {{/required}}{{name}}Variable{{^required}} : 0{{/required}}{{^-last}},{{/-last}}
{{/isEnum}}
{{^isEnum}}
{{#isNumeric}}
{{^required}}{{{name}}} ? true : false,{{/required}}
{{^required}}{{{name}}} ? {{/required}}{{{name}}}->valuedouble{{^required}} : 0{{/required}}{{^-last}},{{/-last}}
{{/isNumeric}}
{{#isBoolean}}
{{^required}}{{{name}}} ? true : false,{{/required}}
{{^required}}{{{name}}} ? {{/required}}{{{name}}}->valueint{{^required}} : 0{{/required}}{{^-last}},{{/-last}}
{{/isBoolean}}
{{#isString}}
{{^required}}{{{name}}} ? {{/required}}ogs_strdup_or_assert({{{name}}}->valuestring){{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isString}}
{{/isEnum}}
{{#isByteArray}}
{{^required}}{{{name}}} ? {{/required}}{{{name}}}->valueint{{^required}} : 0{{/required}}{{^-last}},{{/-last}}
{{/isByteArray}}
{{#isBinary}}
{{^required}}{{{name}}} ? {{/required}}decoded_str_{{{name}}}{{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isBinary}}
{{#isDate}}
{{^required}}{{{name}}} ? {{/required}}ogs_strdup_or_assert({{{name}}}->valuestring){{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isDate}}
{{#isDateTime}}
{{^required}}{{{name}}} ? {{/required}}ogs_strdup_or_assert({{{name}}}->valuestring){{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isDateTime}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isArray}}
{{^required}}{{{name}}} ? {{/required}}{{{name}}}List{{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isArray}}
{{#isMap}}
{{^required}}{{{name}}} ? {{/required}}{{{name}}}List{{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
{{/isMap}}
{{/isContainer}}
{{/vars}}
);
return {{classname}}_local_var;
end:
return NULL;
}
OpenAPI_{{classname}}_t *OpenAPI_{{classname}}_copy(OpenAPI_{{classname}}_t *dst, OpenAPI_{{classname}}_t *src)
{
cJSON *item = NULL;
char *content = NULL;
ogs_assert(src);
item = OpenAPI_{{classname}}_convertToJSON(src);
if (!item) {
ogs_error("OpenAPI_{{classname}}_convertToJSON() failed");
return NULL;
}
content = cJSON_Print(item);
cJSON_Delete(item);
if (!content) {
ogs_error("cJSON_Print() failed");
return NULL;
}
item = cJSON_Parse(content);
ogs_free(content);
if (!item) {
ogs_error("cJSON_Parse() failed");
return NULL;
}
OpenAPI_{{classname}}_free(dst);
dst = OpenAPI_{{classname}}_parseFromJSON(item);
cJSON_Delete(item);
return dst;
}
{{/isEnum}}
{{/model}}{{/models}}