2023-03-01 10:56:49 +00:00
# include <stdlib.h>
# include <string.h>
# include <stdio.h>
# include "pro_se_allowed_plmn.h"
OpenAPI_pro_se_allowed_plmn_t * OpenAPI_pro_se_allowed_plmn_create (
OpenAPI_plmn_id_t * visited_plmn ,
OpenAPI_list_t * prose_direct_allowed
)
{
OpenAPI_pro_se_allowed_plmn_t * pro_se_allowed_plmn_local_var = ogs_malloc ( sizeof ( OpenAPI_pro_se_allowed_plmn_t ) ) ;
ogs_assert ( pro_se_allowed_plmn_local_var ) ;
pro_se_allowed_plmn_local_var - > visited_plmn = visited_plmn ;
pro_se_allowed_plmn_local_var - > prose_direct_allowed = prose_direct_allowed ;
return pro_se_allowed_plmn_local_var ;
}
void OpenAPI_pro_se_allowed_plmn_free ( OpenAPI_pro_se_allowed_plmn_t * pro_se_allowed_plmn )
{
OpenAPI_lnode_t * node = NULL ;
if ( NULL = = pro_se_allowed_plmn ) {
return ;
}
if ( pro_se_allowed_plmn - > visited_plmn ) {
OpenAPI_plmn_id_free ( pro_se_allowed_plmn - > visited_plmn ) ;
pro_se_allowed_plmn - > visited_plmn = NULL ;
}
if ( pro_se_allowed_plmn - > prose_direct_allowed ) {
OpenAPI_list_free ( pro_se_allowed_plmn - > prose_direct_allowed ) ;
pro_se_allowed_plmn - > prose_direct_allowed = NULL ;
}
ogs_free ( pro_se_allowed_plmn ) ;
}
cJSON * OpenAPI_pro_se_allowed_plmn_convertToJSON ( OpenAPI_pro_se_allowed_plmn_t * pro_se_allowed_plmn )
{
cJSON * item = NULL ;
OpenAPI_lnode_t * node = NULL ;
if ( pro_se_allowed_plmn = = NULL ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_convertToJSON() failed [ProSeAllowedPlmn] " ) ;
return NULL ;
}
item = cJSON_CreateObject ( ) ;
if ( ! pro_se_allowed_plmn - > visited_plmn ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_convertToJSON() failed [visited_plmn] " ) ;
return NULL ;
}
cJSON * visited_plmn_local_JSON = OpenAPI_plmn_id_convertToJSON ( pro_se_allowed_plmn - > visited_plmn ) ;
if ( visited_plmn_local_JSON = = NULL ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_convertToJSON() failed [visited_plmn] " ) ;
goto end ;
}
cJSON_AddItemToObject ( item , " visitedPlmn " , visited_plmn_local_JSON ) ;
if ( item - > child = = NULL ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_convertToJSON() failed [visited_plmn] " ) ;
goto end ;
}
if ( pro_se_allowed_plmn - > prose_direct_allowed ! = OpenAPI_prose_direct_allowed_NULL ) {
cJSON * prose_direct_allowedList = cJSON_AddArrayToObject ( item , " proseDirectAllowed " ) ;
if ( prose_direct_allowedList = = NULL ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_convertToJSON() failed [prose_direct_allowed] " ) ;
goto end ;
}
OpenAPI_list_for_each ( pro_se_allowed_plmn - > prose_direct_allowed , node ) {
if ( cJSON_AddStringToObject ( prose_direct_allowedList , " " , OpenAPI_prose_direct_allowed_ToString ( ( intptr_t ) node - > data ) ) = = NULL ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_convertToJSON() failed [prose_direct_allowed] " ) ;
goto end ;
}
}
}
end :
return item ;
}
OpenAPI_pro_se_allowed_plmn_t * OpenAPI_pro_se_allowed_plmn_parseFromJSON ( cJSON * pro_se_allowed_plmnJSON )
{
OpenAPI_pro_se_allowed_plmn_t * pro_se_allowed_plmn_local_var = NULL ;
OpenAPI_lnode_t * node = NULL ;
cJSON * visited_plmn = NULL ;
OpenAPI_plmn_id_t * visited_plmn_local_nonprim = NULL ;
cJSON * prose_direct_allowed = NULL ;
OpenAPI_list_t * prose_direct_allowedList = NULL ;
visited_plmn = cJSON_GetObjectItemCaseSensitive ( pro_se_allowed_plmnJSON , " visitedPlmn " ) ;
if ( ! visited_plmn ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_parseFromJSON() failed [visited_plmn] " ) ;
goto end ;
}
visited_plmn_local_nonprim = OpenAPI_plmn_id_parseFromJSON ( visited_plmn ) ;
2023-03-15 11:40:07 +00:00
if ( ! visited_plmn_local_nonprim ) {
ogs_error ( " OpenAPI_plmn_id_parseFromJSON failed [visited_plmn] " ) ;
goto end ;
}
2023-03-01 10:56:49 +00:00
prose_direct_allowed = cJSON_GetObjectItemCaseSensitive ( pro_se_allowed_plmnJSON , " proseDirectAllowed " ) ;
if ( prose_direct_allowed ) {
cJSON * prose_direct_allowed_local = NULL ;
if ( ! cJSON_IsArray ( prose_direct_allowed ) ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_parseFromJSON() failed [prose_direct_allowed] " ) ;
goto end ;
}
prose_direct_allowedList = OpenAPI_list_create ( ) ;
cJSON_ArrayForEach ( prose_direct_allowed_local , prose_direct_allowed ) {
2023-09-24 00:54:53 +00:00
OpenAPI_prose_direct_allowed_e localEnum = OpenAPI_prose_direct_allowed_NULL ;
2023-03-01 10:56:49 +00:00
if ( ! cJSON_IsString ( prose_direct_allowed_local ) ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_parseFromJSON() failed [prose_direct_allowed] " ) ;
goto end ;
}
2023-09-24 00:54:53 +00:00
localEnum = OpenAPI_prose_direct_allowed_FromString ( prose_direct_allowed_local - > valuestring ) ;
if ( ! localEnum ) {
2023-10-26 13:44:51 +00:00
ogs_info ( " Enum value \" %s \" for field \" prose_direct_allowed \" is not supported. Ignoring it ... " ,
prose_direct_allowed_local - > valuestring ) ;
} else {
OpenAPI_list_add ( prose_direct_allowedList , ( void * ) localEnum ) ;
2023-09-24 00:54:53 +00:00
}
2023-10-26 13:44:51 +00:00
}
if ( prose_direct_allowedList - > count = = 0 ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_parseFromJSON() failed: Expected prose_direct_allowedList to not be empty (after ignoring unsupported enum values). " ) ;
goto end ;
2023-03-01 10:56:49 +00:00
}
}
pro_se_allowed_plmn_local_var = OpenAPI_pro_se_allowed_plmn_create (
visited_plmn_local_nonprim ,
prose_direct_allowed ? prose_direct_allowedList : NULL
) ;
return pro_se_allowed_plmn_local_var ;
end :
if ( visited_plmn_local_nonprim ) {
OpenAPI_plmn_id_free ( visited_plmn_local_nonprim ) ;
visited_plmn_local_nonprim = NULL ;
}
if ( prose_direct_allowedList ) {
OpenAPI_list_free ( prose_direct_allowedList ) ;
prose_direct_allowedList = NULL ;
}
return NULL ;
}
OpenAPI_pro_se_allowed_plmn_t * OpenAPI_pro_se_allowed_plmn_copy ( OpenAPI_pro_se_allowed_plmn_t * dst , OpenAPI_pro_se_allowed_plmn_t * src )
{
cJSON * item = NULL ;
char * content = NULL ;
ogs_assert ( src ) ;
item = OpenAPI_pro_se_allowed_plmn_convertToJSON ( src ) ;
if ( ! item ) {
ogs_error ( " OpenAPI_pro_se_allowed_plmn_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_pro_se_allowed_plmn_free ( dst ) ;
dst = OpenAPI_pro_se_allowed_plmn_parseFromJSON ( item ) ;
cJSON_Delete ( item ) ;
return dst ;
}