From 63562dc2c36bfccf028eb48cc4efc0ee92710bf1 Mon Sep 17 00:00:00 2001 From: Ahmed Fwela <63286031+ahmednfwela@users.noreply.github.com> Date: Wed, 18 Aug 2021 12:28:06 +0200 Subject: [PATCH] [dart-dio-next] Improve handling nullable objects (#10118) * handle nullable objects * reverted java code * Rewrote type generation to be recursive * checking for isRequired only makes sense in the model class * remove comments * remove whitespaces * regen samples * use const once https://dart.dev/guides/language/effective-dart/usage#dont-use-const-redundantly * remove const from mustache * added space between comma and type * fixed formatting * remove commas * regen samples * bad whitespaces --- .../languages/DartDioNextClientCodegen.java | 28 ----- .../serialization/built_value/class.mustache | 21 ++-- .../variable_serializer_type.mustache | 1 + .../built_value/variable_type.mustache | 1 + .../model/additional_properties_class.dart | 11 +- .../lib/src/model/animal.dart | 7 +- .../lib/src/model/api_response.dart | 10 +- .../model/array_of_array_of_number_only.dart | 6 +- .../lib/src/model/array_of_number_only.dart | 6 +- .../lib/src/model/array_test.dart | 16 ++- .../lib/src/model/capitalization.dart | 19 +++- .../lib/src/model/cat.dart | 10 +- .../lib/src/model/cat_all_of.dart | 4 +- .../lib/src/model/category.dart | 7 +- .../lib/src/model/class_model.dart | 4 +- .../lib/src/model/deprecated_object.dart | 4 +- .../lib/src/model/dog.dart | 10 +- .../lib/src/model/dog_all_of.dart | 4 +- .../lib/src/model/enum_arrays.dart | 9 +- .../lib/src/model/enum_test.dart | 30 +++-- .../lib/src/model/file_schema_test_class.dart | 11 +- .../lib/src/model/foo.dart | 4 +- .../lib/src/model/format_test.dart | 49 ++++++--- .../lib/src/model/has_only_read_only.dart | 7 +- .../lib/src/model/health_check_result.dart | 9 +- .../src/model/inline_response_default.dart | 6 +- .../lib/src/model/map_test.dart | 21 ++-- ...rties_and_additional_properties_class.dart | 12 +- .../lib/src/model/model200_response.dart | 7 +- .../lib/src/model/model_client.dart | 4 +- .../lib/src/model/model_file.dart | 4 +- .../lib/src/model/model_list.dart | 4 +- .../lib/src/model/model_return.dart | 4 +- .../lib/src/model/name.dart | 13 ++- .../lib/src/model/nullable_class.dart | 103 +++++++++++------- .../lib/src/model/number_only.dart | 4 +- .../model/object_with_deprecated_fields.dart | 17 ++- .../lib/src/model/order.dart | 19 +++- .../lib/src/model/outer_composite.dart | 10 +- .../outer_object_with_enum_property.dart | 4 +- .../lib/src/model/pet.dart | 25 +++-- .../lib/src/model/read_only_first.dart | 7 +- .../lib/src/model/special_model_name.dart | 4 +- .../lib/src/model/tag.dart | 7 +- .../lib/src/model/user.dart | 25 +++-- 45 files changed, 372 insertions(+), 216 deletions(-) create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/variable_serializer_type.mustache create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/variable_type.mustache diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioNextClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioNextClientCodegen.java index 895a5559e68d..d4375982bcd6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioNextClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioNextClientCodegen.java @@ -275,37 +275,9 @@ public class DartDioNextClientCodegen extends AbstractDartCodegen { // enums are generated with built_value and make use of BuiltSet model.imports.add("BuiltSet"); } - - property.getVendorExtensions().put("x-built-value-serializer-type", createBuiltValueSerializerType(property)); } } - private String createBuiltValueSerializerType(CodegenProperty property) { - final StringBuilder sb = new StringBuilder("const FullType("); - if (property.isContainer) { - appendBuiltValueCollection(sb, property); - } else { - sb.append(property.datatypeWithEnum); - } - sb.append(")"); - return sb.toString(); - } - - private void appendBuiltValueCollection(StringBuilder sb, CodegenProperty property) { - sb.append(property.baseType); - sb.append(", [FullType("); - if (property.isMap) { - // a map always has string keys - sb.append("String), FullType("); - } - if (property.items.isContainer) { - appendBuiltValueCollection(sb, property.items); - } else { - sb.append(property.items.datatypeWithEnum); - } - sb.append(")]"); - } - @Override public Map postProcessOperationsWithModels(Map objs, List allModels) { super.postProcessOperationsWithModels(objs, allModels); diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache index 1c5937091013..f77c8b91506e 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache @@ -25,7 +25,7 @@ abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builde /// {{{.}}} {{/description}} @BuiltValueField(wireName: r'{{baseName}}') - {{{datatypeWithEnum}}}{{#isNullable}}?{{/isNullable}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}}; + {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}}; {{#allowableValues}} // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}} {{/allowableValues}} @@ -67,7 +67,7 @@ class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> { result ..add(r'{{baseName}}') ..add({{#isNullable}}object.{{{name}}} == null ? null : {{/isNullable}}serializers.serialize(object.{{{name}}}, - specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}})); + specifiedType: const {{>serialization/built_value/variable_serializer_type}})); {{/required}} {{^required}} if (object.{{{name}}} != null) { @@ -75,7 +75,7 @@ class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> { result ..add(r'{{baseName}}') ..add(serializers.serialize(object.{{{name}}}, - specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}})); + specifiedType: const {{>serialization/built_value/variable_serializer_type}})); } {{/required}} {{/vars}} @@ -92,21 +92,24 @@ class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { {{#vars}} case r'{{baseName}}': + final valueDes = serializers.deserialize(value, + specifiedType: const {{>serialization/built_value/variable_serializer_type}}) as {{>serialization/built_value/variable_type}}; + {{#isNullable}} + if (valueDes == null) continue; + {{/isNullable}} {{#isContainer}} - result.{{{name}}}.replace(serializers.deserialize(value, - specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}}) as {{{datatypeWithEnum}}}); + result.{{{name}}}.replace(valueDes); {{/isContainer}} {{#isModel}} - result.{{{name}}}.replace(serializers.deserialize(value, - specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}}) as {{{datatypeWithEnum}}}); + result.{{{name}}}.replace(valueDes); {{/isModel}} {{^isContainer}} {{^isModel}} - result.{{{name}}} = serializers.deserialize(value, - specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}}) as {{{datatypeWithEnum}}}; + result.{{{name}}} = valueDes; {{/isModel}} {{/isContainer}} break; diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/variable_serializer_type.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/variable_serializer_type.mustache new file mode 100644 index 000000000000..c76dde39a9c9 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/variable_serializer_type.mustache @@ -0,0 +1 @@ +FullType{{#isNullable}}.nullable{{/isNullable}}({{#isContainer}}{{baseType}}, [{{#isMap}}FullType(String), {{/isMap}}{{#items}}{{>serialization/built_value/variable_serializer_type}}{{/items}}]{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}) \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/variable_type.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/variable_type.mustache new file mode 100644 index 000000000000..136545525cac --- /dev/null +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/variable_type.mustache @@ -0,0 +1 @@ +{{#isContainer}}{{baseType}}<{{#isMap}}String, {{/isMap}}{{#items}}{{>serialization/built_value/variable_type}}{{/items}}>{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}{{#isNullable}}?{{/isNullable}} \ No newline at end of file diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart index e7499419d16b..4d45be3abbfb 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/additional_properties_class.dart @@ -67,14 +67,17 @@ class _$AdditionalPropertiesClassSerializer implements StructuredSerializer); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)])) as BuiltMap; + result.mapProperty.replace(valueDes); break; case r'map_of_map_property': - result.mapOfMapProperty.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap>); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap>; + result.mapOfMapProperty.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/animal.dart index 957b2e330b51..cd9084ceb289 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/animal.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/animal.dart @@ -65,14 +65,17 @@ class _$AnimalSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'className': - result.className = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.className = valueDes; break; case r'color': - result.color = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.color = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/api_response.dart index a0902690b29a..c2ebff7ffeab 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/api_response.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/api_response.dart @@ -76,18 +76,22 @@ class _$ApiResponseSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'code': - result.code = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.code = valueDes; break; case r'type': - result.type = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.type = valueDes; break; case r'message': - result.message = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.message = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart index 45bc21b19724..1fa583bccc15 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_of_array_of_number_only.dart @@ -57,10 +57,12 @@ class _$ArrayOfArrayOfNumberOnlySerializer implements StructuredSerializer>); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])])) as BuiltList>; + result.arrayArrayNumber.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart index 4de4528f47aa..fcbd7d393bea 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_of_number_only.dart @@ -57,10 +57,12 @@ class _$ArrayOfNumberOnlySerializer implements StructuredSerializer); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(num)])) as BuiltList; + result.arrayNumber.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_test.dart index 7e4a3e86d791..8025d141c124 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_test.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/array_test.dart @@ -78,18 +78,22 @@ class _$ArrayTestSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'array_of_string': - result.arrayOfString.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList; + result.arrayOfString.replace(valueDes); break; case r'array_array_of_integer': - result.arrayArrayOfInteger.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])) as BuiltList>); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])) as BuiltList>; + result.arrayArrayOfInteger.replace(valueDes); break; case r'array_array_of_model': - result.arrayArrayOfModel.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])) as BuiltList>); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])) as BuiltList>; + result.arrayArrayOfModel.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/capitalization.dart index eb793695fc0e..15a8f080e9b1 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/capitalization.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/capitalization.dart @@ -107,30 +107,37 @@ class _$CapitalizationSerializer implements StructuredSerializer final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'smallCamel': - result.smallCamel = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.smallCamel = valueDes; break; case r'CapitalCamel': - result.capitalCamel = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.capitalCamel = valueDes; break; case r'small_Snake': - result.smallSnake = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.smallSnake = valueDes; break; case r'Capital_Snake': - result.capitalSnake = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.capitalSnake = valueDes; break; case r'SCA_ETH_Flow_Points': - result.sCAETHFlowPoints = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.sCAETHFlowPoints = valueDes; break; case r'ATT_NAME': - result.ATT_NAME = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.ATT_NAME = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/cat.dart index f36e3b295326..2c905783610b 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/cat.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/cat.dart @@ -79,18 +79,22 @@ class _$CatSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'className': - result.className = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.className = valueDes; break; case r'color': - result.color = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.color = valueDes; break; case r'declawed': - result.declawed = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(bool)) as bool; + result.declawed = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/cat_all_of.dart index caac5bed6b95..1734098fe224 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/cat_all_of.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/cat_all_of.dart @@ -56,10 +56,12 @@ class _$CatAllOfSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'declawed': - result.declawed = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(bool)) as bool; + result.declawed = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/category.dart index f201eb853602..9ee9a94a3e7c 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/category.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/category.dart @@ -65,14 +65,17 @@ class _$CategorySerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'id': - result.id = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.id = valueDes; break; case r'name': - result.name = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.name = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/class_model.dart index 09d29f9a1c48..ca90835c83de 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/class_model.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/class_model.dart @@ -56,10 +56,12 @@ class _$ClassModelSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'_class': - result.class_ = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.class_ = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/deprecated_object.dart index 24df5054e2ec..98db39b4f44d 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/deprecated_object.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/deprecated_object.dart @@ -56,10 +56,12 @@ class _$DeprecatedObjectSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'className': - result.className = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.className = valueDes; break; case r'color': - result.color = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.color = valueDes; break; case r'breed': - result.breed = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.breed = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/dog_all_of.dart index 84f46a94c2eb..23387e4da75a 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/dog_all_of.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/dog_all_of.dart @@ -56,10 +56,12 @@ class _$DogAllOfSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'breed': - result.breed = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.breed = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/enum_arrays.dart index 1a0715cec9c1..bda9790c1049 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/enum_arrays.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/enum_arrays.dart @@ -69,14 +69,17 @@ class _$EnumArraysSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'just_symbol': - result.justSymbol = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(EnumArraysJustSymbolEnum)) as EnumArraysJustSymbolEnum; + result.justSymbol = valueDes; break; case r'array_enum': - result.arrayEnum.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])) as BuiltList); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])) as BuiltList; + result.arrayEnum.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/enum_test.dart index 3e8b11af09ce..7ca76d22fe0f 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/enum_test.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/enum_test.dart @@ -104,7 +104,7 @@ class _$EnumTestSerializer implements StructuredSerializer { result ..add(r'outerEnum') ..add(serializers.serialize(object.outerEnum, - specifiedType: const FullType(OuterEnum))); + specifiedType: const FullType.nullable(OuterEnum))); } if (object.outerEnumInteger != null) { result @@ -137,38 +137,48 @@ class _$EnumTestSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'enum_string': - result.enumString = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(EnumTestEnumStringEnum)) as EnumTestEnumStringEnum; + result.enumString = valueDes; break; case r'enum_string_required': - result.enumStringRequired = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(EnumTestEnumStringRequiredEnum)) as EnumTestEnumStringRequiredEnum; + result.enumStringRequired = valueDes; break; case r'enum_integer': - result.enumInteger = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(EnumTestEnumIntegerEnum)) as EnumTestEnumIntegerEnum; + result.enumInteger = valueDes; break; case r'enum_number': - result.enumNumber = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(EnumTestEnumNumberEnum)) as EnumTestEnumNumberEnum; + result.enumNumber = valueDes; break; case r'outerEnum': - result.outerEnum = serializers.deserialize(value, - specifiedType: const FullType(OuterEnum)) as OuterEnum; + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(OuterEnum)) as OuterEnum?; + if (valueDes == null) continue; + result.outerEnum = valueDes; break; case r'outerEnumInteger': - result.outerEnumInteger = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger; + result.outerEnumInteger = valueDes; break; case r'outerEnumDefaultValue': - result.outerEnumDefaultValue = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(OuterEnumDefaultValue)) as OuterEnumDefaultValue; + result.outerEnumDefaultValue = valueDes; break; case r'outerEnumIntegerDefaultValue': - result.outerEnumIntegerDefaultValue = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(OuterEnumIntegerDefaultValue)) as OuterEnumIntegerDefaultValue; + result.outerEnumIntegerDefaultValue = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart index e1d8d69a8010..7a2090e87dad 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/file_schema_test_class.dart @@ -68,14 +68,17 @@ class _$FileSchemaTestClassSerializer implements StructuredSerializer); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(ModelFile)])) as BuiltList; + result.files.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/foo.dart index 57f00b801485..dd3691968d4a 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/foo.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/foo.dart @@ -57,10 +57,12 @@ class _$FooSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'bar': - result.bar = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.bar = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/format_test.dart index bd46fac2690e..cf1be44ab5b7 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/format_test.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/format_test.dart @@ -202,70 +202,87 @@ class _$FormatTestSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'integer': - result.integer = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.integer = valueDes; break; case r'int32': - result.int32 = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.int32 = valueDes; break; case r'int64': - result.int64 = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.int64 = valueDes; break; case r'number': - result.number = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(num)) as num; + result.number = valueDes; break; case r'float': - result.float = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(double)) as double; + result.float = valueDes; break; case r'double': - result.double_ = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(double)) as double; + result.double_ = valueDes; break; case r'decimal': - result.decimal = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(double)) as double; + result.decimal = valueDes; break; case r'string': - result.string = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.string = valueDes; break; case r'byte': - result.byte = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.byte = valueDes; break; case r'binary': - result.binary = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(Uint8List)) as Uint8List; + result.binary = valueDes; break; case r'date': - result.date = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(Date)) as Date; + result.date = valueDes; break; case r'dateTime': - result.dateTime = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(DateTime)) as DateTime; + result.dateTime = valueDes; break; case r'uuid': - result.uuid = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.uuid = valueDes; break; case r'password': - result.password = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.password = valueDes; break; case r'pattern_with_digits': - result.patternWithDigits = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.patternWithDigits = valueDes; break; case r'pattern_with_digits_and_delimiter': - result.patternWithDigitsAndDelimiter = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.patternWithDigitsAndDelimiter = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart index f6842ea1b2f6..21b44ece26ed 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/has_only_read_only.dart @@ -66,14 +66,17 @@ class _$HasOnlyReadOnlySerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'map_map_of_string': - result.mapMapOfString.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap>); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])) as BuiltMap>; + result.mapMapOfString.replace(valueDes); break; case r'map_of_enum_string': - result.mapOfEnumString.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)])) as BuiltMap); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltMap, [FullType(String), FullType(MapTestMapOfEnumStringEnum)])) as BuiltMap; + result.mapOfEnumString.replace(valueDes); break; case r'direct_map': - result.directMap.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap; + result.directMap.replace(valueDes); break; case r'indirect_map': - result.indirectMap.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltMap, [FullType(String), FullType(bool)])) as BuiltMap; + result.indirectMap.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart index 418536c869d4..27c6993cc70f 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/mixed_properties_and_additional_properties_class.dart @@ -78,18 +78,22 @@ class _$MixedPropertiesAndAdditionalPropertiesClassSerializer implements Structu final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'uuid': - result.uuid = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.uuid = valueDes; break; case r'dateTime': - result.dateTime = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(DateTime)) as DateTime; + result.dateTime = valueDes; break; case r'map': - result.map.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)])) as BuiltMap); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltMap, [FullType(String), FullType(Animal)])) as BuiltMap; + result.map.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model200_response.dart index 9cdc10da98f9..7392f71fe849 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model200_response.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model200_response.dart @@ -66,14 +66,17 @@ class _$Model200ResponseSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'client': - result.client = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.client = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_file.dart index 2cfa16792676..aa7b5ecfeddf 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_file.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_file.dart @@ -57,10 +57,12 @@ class _$ModelFileSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'sourceURI': - result.sourceURI = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.sourceURI = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_list.dart index c81df7af990b..87e10153b1ac 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_list.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_list.dart @@ -56,10 +56,12 @@ class _$ModelListSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'123-list': - result.n123list = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.n123list = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_return.dart index 88a2cb3242f3..c63e0464faad 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_return.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/model_return.dart @@ -56,10 +56,12 @@ class _$ModelReturnSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'return': - result.return_ = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.return_ = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/name.dart index 50c1daf4d656..78f9f8e545ef 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/name.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/name.dart @@ -84,22 +84,27 @@ class _$NameSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'name': - result.name = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.name = valueDes; break; case r'snake_case': - result.snakeCase = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.snakeCase = valueDes; break; case r'property': - result.property = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.property = valueDes; break; case r'123Number': - result.n123number = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.n123number = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/nullable_class.dart index 3c10f87c0a71..efddc42e3072 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/nullable_class.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/nullable_class.dart @@ -48,19 +48,19 @@ abstract class NullableClass implements Built? get arrayNullableProp; @BuiltValueField(wireName: r'array_and_items_nullable_prop') - BuiltList? get arrayAndItemsNullableProp; + BuiltList? get arrayAndItemsNullableProp; @BuiltValueField(wireName: r'array_items_nullable') - BuiltList? get arrayItemsNullable; + BuiltList? get arrayItemsNullable; @BuiltValueField(wireName: r'object_nullable_prop') BuiltMap? get objectNullableProp; @BuiltValueField(wireName: r'object_and_items_nullable_prop') - BuiltMap? get objectAndItemsNullableProp; + BuiltMap? get objectAndItemsNullableProp; @BuiltValueField(wireName: r'object_items_nullable') - BuiltMap? get objectItemsNullable; + BuiltMap? get objectItemsNullable; NullableClass._(); @@ -88,73 +88,73 @@ class _$NullableClassSerializer implements StructuredSerializer { result ..add(r'integer_prop') ..add(serializers.serialize(object.integerProp, - specifiedType: const FullType(int))); + specifiedType: const FullType.nullable(int))); } if (object.numberProp != null) { result ..add(r'number_prop') ..add(serializers.serialize(object.numberProp, - specifiedType: const FullType(num))); + specifiedType: const FullType.nullable(num))); } if (object.booleanProp != null) { result ..add(r'boolean_prop') ..add(serializers.serialize(object.booleanProp, - specifiedType: const FullType(bool))); + specifiedType: const FullType.nullable(bool))); } if (object.stringProp != null) { result ..add(r'string_prop') ..add(serializers.serialize(object.stringProp, - specifiedType: const FullType(String))); + specifiedType: const FullType.nullable(String))); } if (object.dateProp != null) { result ..add(r'date_prop') ..add(serializers.serialize(object.dateProp, - specifiedType: const FullType(Date))); + specifiedType: const FullType.nullable(Date))); } if (object.datetimeProp != null) { result ..add(r'datetime_prop') ..add(serializers.serialize(object.datetimeProp, - specifiedType: const FullType(DateTime))); + specifiedType: const FullType.nullable(DateTime))); } if (object.arrayNullableProp != null) { result ..add(r'array_nullable_prop') ..add(serializers.serialize(object.arrayNullableProp, - specifiedType: const FullType(BuiltList, [FullType(JsonObject)]))); + specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)]))); } if (object.arrayAndItemsNullableProp != null) { result ..add(r'array_and_items_nullable_prop') ..add(serializers.serialize(object.arrayAndItemsNullableProp, - specifiedType: const FullType(BuiltList, [FullType(JsonObject)]))); + specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)]))); } if (object.arrayItemsNullable != null) { result ..add(r'array_items_nullable') ..add(serializers.serialize(object.arrayItemsNullable, - specifiedType: const FullType(BuiltList, [FullType(JsonObject)]))); + specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)]))); } if (object.objectNullableProp != null) { result ..add(r'object_nullable_prop') ..add(serializers.serialize(object.objectNullableProp, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(JsonObject)]))); + specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)]))); } if (object.objectAndItemsNullableProp != null) { result ..add(r'object_and_items_nullable_prop') ..add(serializers.serialize(object.objectAndItemsNullableProp, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(JsonObject)]))); + specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]))); } if (object.objectItemsNullable != null) { result ..add(r'object_items_nullable') ..add(serializers.serialize(object.objectItemsNullable, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(JsonObject)]))); + specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)]))); } return result; } @@ -169,54 +169,77 @@ class _$NullableClassSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'integer_prop': - result.integerProp = serializers.deserialize(value, - specifiedType: const FullType(int)) as int; + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(int)) as int?; + if (valueDes == null) continue; + result.integerProp = valueDes; break; case r'number_prop': - result.numberProp = serializers.deserialize(value, - specifiedType: const FullType(num)) as num; + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(num)) as num?; + if (valueDes == null) continue; + result.numberProp = valueDes; break; case r'boolean_prop': - result.booleanProp = serializers.deserialize(value, - specifiedType: const FullType(bool)) as bool; + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(bool)) as bool?; + if (valueDes == null) continue; + result.booleanProp = valueDes; break; case r'string_prop': - result.stringProp = serializers.deserialize(value, - specifiedType: const FullType(String)) as String; + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(String)) as String?; + if (valueDes == null) continue; + result.stringProp = valueDes; break; case r'date_prop': - result.dateProp = serializers.deserialize(value, - specifiedType: const FullType(Date)) as Date; + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(Date)) as Date?; + if (valueDes == null) continue; + result.dateProp = valueDes; break; case r'datetime_prop': - result.datetimeProp = serializers.deserialize(value, - specifiedType: const FullType(DateTime)) as DateTime; + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(DateTime)) as DateTime?; + if (valueDes == null) continue; + result.datetimeProp = valueDes; break; case r'array_nullable_prop': - result.arrayNullableProp.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltList, [FullType(JsonObject)])) as BuiltList); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(BuiltList, [FullType(JsonObject)])) as BuiltList?; + if (valueDes == null) continue; + result.arrayNullableProp.replace(valueDes); break; case r'array_and_items_nullable_prop': - result.arrayAndItemsNullableProp.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltList, [FullType(JsonObject)])) as BuiltList); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList?; + if (valueDes == null) continue; + result.arrayAndItemsNullableProp.replace(valueDes); break; case r'array_items_nullable': - result.arrayItemsNullable.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltList, [FullType(JsonObject)])) as BuiltList); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType.nullable(JsonObject)])) as BuiltList; + result.arrayItemsNullable.replace(valueDes); break; case r'object_nullable_prop': - result.objectNullableProp.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(JsonObject)])) as BuiltMap); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType(JsonObject)])) as BuiltMap?; + if (valueDes == null) continue; + result.objectNullableProp.replace(valueDes); break; case r'object_and_items_nullable_prop': - result.objectAndItemsNullableProp.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(JsonObject)])) as BuiltMap); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType.nullable(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap?; + if (valueDes == null) continue; + result.objectAndItemsNullableProp.replace(valueDes); break; case r'object_items_nullable': - result.objectItemsNullable.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltMap, [FullType(String), FullType(JsonObject)])) as BuiltMap); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltMap, [FullType(String), FullType.nullable(JsonObject)])) as BuiltMap; + result.objectItemsNullable.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/number_only.dart index bb09dc5abd96..e90cc9b93408 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/number_only.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/number_only.dart @@ -56,10 +56,12 @@ class _$NumberOnlySerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'JustNumber': - result.justNumber = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(num)) as num; + result.justNumber = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart index 1440ee4761e2..881ede54d0d6 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/object_with_deprecated_fields.dart @@ -88,22 +88,27 @@ class _$ObjectWithDeprecatedFieldsSerializer implements StructuredSerializer); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList; + result.bars.replace(valueDes); break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/order.dart index edcabc1e726c..3f9aed726558 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/order.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/order.dart @@ -110,30 +110,37 @@ class _$OrderSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'id': - result.id = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.id = valueDes; break; case r'petId': - result.petId = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.petId = valueDes; break; case r'quantity': - result.quantity = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.quantity = valueDes; break; case r'shipDate': - result.shipDate = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(DateTime)) as DateTime; + result.shipDate = valueDes; break; case r'status': - result.status = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(OrderStatusEnum)) as OrderStatusEnum; + result.status = valueDes; break; case r'complete': - result.complete = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(bool)) as bool; + result.complete = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/outer_composite.dart index 50b397a9f6bf..0715bdff3056 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/outer_composite.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/outer_composite.dart @@ -76,18 +76,22 @@ class _$OuterCompositeSerializer implements StructuredSerializer final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'my_number': - result.myNumber = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(num)) as num; + result.myNumber = valueDes; break; case r'my_string': - result.myString = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.myString = valueDes; break; case r'my_boolean': - result.myBoolean = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(bool)) as bool; + result.myBoolean = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart index 4cd5558ccbc0..91524a285b84 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/outer_object_with_enum_property.dart @@ -56,10 +56,12 @@ class _$OuterObjectWithEnumPropertySerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'id': - result.id = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.id = valueDes; break; case r'category': - result.category.replace(serializers.deserialize(value, - specifiedType: const FullType(Category)) as Category); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(Category)) as Category; + result.category.replace(valueDes); break; case r'name': - result.name = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.name = valueDes; break; case r'photoUrls': - result.photoUrls.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltSet, [FullType(String)])) as BuiltSet); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltSet, [FullType(String)])) as BuiltSet; + result.photoUrls.replace(valueDes); break; case r'tags': - result.tags.replace(serializers.deserialize(value, - specifiedType: const FullType(BuiltList, [FullType(Tag)])) as BuiltList); + final valueDes = serializers.deserialize(value, + specifiedType: const FullType(BuiltList, [FullType(Tag)])) as BuiltList; + result.tags.replace(valueDes); break; case r'status': - result.status = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(PetStatusEnum)) as PetStatusEnum; + result.status = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/read_only_first.dart index b24ce8f0db1a..b9f108fb6259 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/read_only_first.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/read_only_first.dart @@ -66,14 +66,17 @@ class _$ReadOnlyFirstSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'bar': - result.bar = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.bar = valueDes; break; case r'baz': - result.baz = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.baz = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/special_model_name.dart index bb08953c02ed..dcfe12bb066a 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/special_model_name.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/special_model_name.dart @@ -56,10 +56,12 @@ class _$SpecialModelNameSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'id': - result.id = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.id = valueDes; break; case r'name': - result.name = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.name = valueDes; break; } } diff --git a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/user.dart index f7150fa54b0e..d590c20bdc70 100644 --- a/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/user.dart +++ b/samples/openapi3/client/petstore/dart-dio-next/petstore_client_lib_fake/lib/src/model/user.dart @@ -127,38 +127,47 @@ class _$UserSerializer implements StructuredSerializer { final key = iterator.current as String; iterator.moveNext(); final Object? value = iterator.current; + switch (key) { case r'id': - result.id = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.id = valueDes; break; case r'username': - result.username = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.username = valueDes; break; case r'firstName': - result.firstName = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.firstName = valueDes; break; case r'lastName': - result.lastName = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.lastName = valueDes; break; case r'email': - result.email = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.email = valueDes; break; case r'password': - result.password = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.password = valueDes; break; case r'phone': - result.phone = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(String)) as String; + result.phone = valueDes; break; case r'userStatus': - result.userStatus = serializers.deserialize(value, + final valueDes = serializers.deserialize(value, specifiedType: const FullType(int)) as int; + result.userStatus = valueDes; break; } }