diff --git a/docs/generators/dart-dio.md b/docs/generators/dart-dio.md
index ffff1394c42..ebbc40b5430 100644
--- a/docs/generators/dart-dio.md
+++ b/docs/generators/dart-dio.md
@@ -12,7 +12,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|disallowAdditionalPropertiesIfNotPresent|If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.|
**false** The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. **true** Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default. |true|
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|legacyDiscriminatorBehavior|Set to true for generators with better support for discriminators. (Python, Java, Go, PowerShell, C#have this enabled by default).|**true** The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document. **false** The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing. |true|
-|nullableFields|Is the null fields should be in the JSON payload| |null|
+|nullableFields|Make all fields nullable in the JSON payload| |null|
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|pubAuthor|Author name in generated pubspec| |null|
|pubAuthorEmail|Email address of the author in generated pubspec| |null|
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
index 66be8bc4184..ef2f04a6a64 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java
@@ -40,7 +40,7 @@ public class DartDioClientCodegen extends DartClientCodegen {
private static final String CLIENT_NAME = "clientName";
- private boolean nullableFields = true;
+ private boolean nullableFields = false;
private String dateLibrary = "core";
public DartDioClientCodegen() {
@@ -49,7 +49,7 @@ public class DartDioClientCodegen extends DartClientCodegen {
embeddedTemplateDir = "dart-dio";
this.setTemplateDir(embeddedTemplateDir);
- cliOptions.add(new CliOption(NULLABLE_FIELDS, "Is the null fields should be in the JSON payload"));
+ cliOptions.add(new CliOption(NULLABLE_FIELDS, "Make all fields nullable in the JSON payload"));
CliOption dateLibrary = new CliOption(DATE_LIBRARY, "Option. Date library to use").defaultValue(this.getDateLibrary());
Map dateOptions = new HashMap<>();
dateOptions.put("core", "Dart core library (DateTime)");
@@ -284,6 +284,34 @@ public class DartDioClientCodegen extends DartClientCodegen {
// 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) {
+ appendCollection(sb, property);
+ } else {
+ sb.append(property.datatypeWithEnum);
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ private void appendCollection(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) {
+ appendCollection(sb, property.items);
+ } else {
+ sb.append(property.items.datatypeWithEnum);
+ }
+ sb.append(")]");
}
@Override
diff --git a/modules/openapi-generator/src/main/resources/dart-dio/class.mustache b/modules/openapi-generator/src/main/resources/dart-dio/class.mustache
index 02ac659904a..0fce16365a3 100644
--- a/modules/openapi-generator/src/main/resources/dart-dio/class.mustache
+++ b/modules/openapi-generator/src/main/resources/dart-dio/class.mustache
@@ -9,9 +9,20 @@ abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builde
{{#description}}
/// {{{description}}}
{{/description}}
+ {{!
+ A field is @nullable in built_value when it is
+ nullable || (!required && !defaultValue) in OAS
+ }}
{{#isNullable}}
@nullable
{{/isNullable}}
+ {{^isNullable}}
+ {{^required}}
+ {{^defaultValue}}
+ @nullable
+ {{/defaultValue}}
+ {{/required}}
+ {{/isNullable}}
@BuiltValueField(wireName: r'{{baseName}}')
{{{datatypeWithEnum}}} get {{name}};
{{#allowableValues}}
@@ -19,14 +30,89 @@ abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builde
{{/allowableValues}}
{{/vars}}
- // Boilerplate code needed to wire-up generated code
{{classname}}._();
static void _initializeBuilder({{{classname}}}Builder b) => b{{#vars}}{{#defaultValue}}
..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vars}};
factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}};
- static Serializer<{{classname}}> get serializer => _${{#lambda.camelcase}}{{{classname}}}{{/lambda.camelcase}}Serializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer<{{classname}}> get serializer => _${{classname}}Serializer();
+}
+
+{{!
+ Generate a custom serializer in order to support combinations of required and nullable.
+ By default built_value does not serialize null fields.
+}}
+class _${{classname}}Serializer implements StructuredSerializer<{{classname}}> {
+
+ @override
+ final Iterable types = const [{{classname}}, _${{classname}}];
+ @override
+ final String wireName = r'{{classname}}';
+
+ @override
+ Iterable serialize(Serializers serializers, {{{classname}}} object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ {{#vars}}
+ {{#required}}
+ {{!
+ A required property need to always be part of the serialized output.
+ When it is nullable, null is serialized, otherwise it is an error if it is null.
+ }}
+ result
+ ..add(r'{{baseName}}')
+ ..add({{#isNullable}}object.{{{name}}} == null ? null : {{/isNullable}}serializers.serialize(object.{{{name}}},
+ specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}}));
+ {{/required}}
+ {{^required}}
+ if (object.{{{name}}} != null) {
+ {{! Non-required properties are only serialized if not null. }}
+ result
+ ..add(r'{{baseName}}')
+ ..add(serializers.serialize(object.{{{name}}},
+ specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}}));
+ }
+ {{/required}}
+ {{/vars}}
+ return result;
+ }
+
+ @override
+ {{classname}} deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = {{classname}}Builder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ {{#vars}}
+ case r'{{baseName}}':
+ {{#isContainer}}
+ result.{{{name}}}.replace(serializers.deserialize(value,
+ specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}}) as {{{datatypeWithEnum}}});
+ {{/isContainer}}
+ {{#isModel}}
+ result.{{{name}}}.replace(serializers.deserialize(value,
+ specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}}) as {{{datatypeWithEnum}}});
+ {{/isModel}}
+ {{^isContainer}}
+ {{^isModel}}
+ result.{{{name}}} = serializers.deserialize(value,
+ specifiedType: {{{vendorExtensions.x-built-value-serializer-type}}}) as {{{datatypeWithEnum}}};
+ {{/isModel}}
+ {{/isContainer}}
+ break;
+ {{/vars}}
+ }
+ }
+ return result.build();
+ }
}
{{!
Generate an enum for any variables that are declared as inline enums
diff --git a/modules/openapi-generator/src/main/resources/dart-dio/model_test.mustache b/modules/openapi-generator/src/main/resources/dart-dio/model_test.mustache
index 0afdb340155..73a2ef0b7a6 100644
--- a/modules/openapi-generator/src/main/resources/dart-dio/model_test.mustache
+++ b/modules/openapi-generator/src/main/resources/dart-dio/model_test.mustache
@@ -6,7 +6,9 @@ import 'package:test/test.dart';
// tests for {{{classname}}}
void main() {
{{^isEnum}}
- final instance = {{{classname}}}();
+ {{! Due to required vars without default value we can not create a full instance here }}
+ final instance = {{{classname}}}Builder();
+ // TODO add properties to the builder and call build()
{{/isEnum}}
group({{{classname}}}, () {
diff --git a/modules/openapi-generator/src/main/resources/dart2/class.mustache b/modules/openapi-generator/src/main/resources/dart2/class.mustache
index 325a9995f51..211b1f45b19 100644
--- a/modules/openapi-generator/src/main/resources/dart2/class.mustache
+++ b/modules/openapi-generator/src/main/resources/dart2/class.mustache
@@ -2,7 +2,11 @@ class {{{classname}}} {
/// Returns a new [{{{classname}}}] instance.
{{{classname}}}({
{{#vars}}
- {{#required}}{{^defaultValue}}@required {{/defaultValue}}{{/required}}this.{{{name}}}{{^isNullable}}{{#defaultValue}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/isNullable}},
+ {{!
+ A field is @required in Dart when it is
+ required && !nullable && !defaultValue in OAS
+ }}
+ {{#required}}{{^isNullable}}{{^defaultValue}}@required {{/defaultValue}}{{/isNullable}}{{/required}}this.{{{name}}}{{^isNullable}}{{#defaultValue}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/isNullable}},
{{/vars}}
});
@@ -39,33 +43,37 @@ class {{{classname}}} {
Map toJson() {
final json = {};
{{#vars}}
+ {{^required}}
if ({{{name}}} != null) {
+ {{/required}}
{{#isDateTime}}
{{#pattern}}
- json[r'{{{baseName}}}'] = _dateEpochMarker == '{{{pattern}}}'
+ json[r'{{{baseName}}}'] = {{#required}}{{#isNullable}}{{{name}}} == null ? null : {{/isNullable}}{{/required}}_dateEpochMarker == '{{{pattern}}}'
? {{{name}}}.millisecondsSinceEpoch
: {{{name}}}.toUtc().toIso8601String();
{{/pattern}}
{{^pattern}}
- json[r'{{{baseName}}}'] = {{{name}}}.toUtc().toIso8601String();
+ json[r'{{{baseName}}}'] = {{#required}}{{#isNullable}}{{{name}}} == null ? null : {{/isNullable}}{{/required}}{{{name}}}.toUtc().toIso8601String();
{{/pattern}}
{{/isDateTime}}
{{#isDate}}
{{#pattern}}
- json[r'{{{baseName}}}'] = _dateEpochMarker == '{{{pattern}}}'
+ json[r'{{{baseName}}}'] = {{#required}}{{#isNullable}}{{{name}}} == null ? null : {{/isNullable}}{{/required}}_dateEpochMarker == '{{{pattern}}}'
? {{{name}}}.millisecondsSinceEpoch
: _dateFormatter.format({{{name}}}.toUtc());
{{/pattern}}
{{^pattern}}
- json[r'{{{baseName}}}'] = _dateFormatter.format({{{name}}}.toUtc());
+ json[r'{{{baseName}}}'] = {{#required}}{{#isNullable}}{{{name}}} == null ? null : {{/isNullable}}{{/required}}_dateFormatter.format({{{name}}}.toUtc());
{{/pattern}}
{{/isDate}}
{{^isDateTime}}
{{^isDate}}
- json[r'{{{baseName}}}'] = {{{name}}};
+ json[r'{{{baseName}}}'] = {{#required}}{{#isNullable}}{{{name}}} == null ? null : {{/isNullable}}{{/required}}{{{name}}};
{{/isDate}}
{{/isDateTime}}
+ {{^required}}
}
+ {{/required}}
{{/vars}}
return json;
}
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/api_response.dart b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/api_response.dart
index 71e4a87d963..d1b4f0f3800 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/api_response.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/api_response.dart
@@ -24,12 +24,74 @@ abstract class ApiResponse implements Built {
@BuiltValueField(wireName: r'message')
String get message;
- // Boilerplate code needed to wire-up generated code
ApiResponse._();
static void _initializeBuilder(ApiResponseBuilder b) => b;
factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
- static Serializer get serializer => _$apiResponseSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$ApiResponseSerializer();
+}
+
+class _$ApiResponseSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [ApiResponse, _$ApiResponse];
+ @override
+ final String wireName = r'ApiResponse';
+
+ @override
+ Iterable serialize(Serializers serializers, ApiResponse object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.code != null) {
+ result
+ ..add(r'code')
+ ..add(serializers.serialize(object.code,
+ specifiedType: const FullType(int)));
+ }
+ if (object.type != null) {
+ result
+ ..add(r'type')
+ ..add(serializers.serialize(object.type,
+ specifiedType: const FullType(String)));
+ }
+ if (object.message != null) {
+ result
+ ..add(r'message')
+ ..add(serializers.serialize(object.message,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ ApiResponse deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = ApiResponseBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'code':
+ result.code = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'type':
+ result.type = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'message':
+ result.message = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/category.dart b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/category.dart
index 4e47dcd7f67..ddf1cf619b5 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/category.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/category.dart
@@ -20,12 +20,64 @@ abstract class Category implements Built {
@BuiltValueField(wireName: r'name')
String get name;
- // Boilerplate code needed to wire-up generated code
Category._();
static void _initializeBuilder(CategoryBuilder b) => b;
factory Category([void updates(CategoryBuilder b)]) = _$Category;
- static Serializer get serializer => _$categorySerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$CategorySerializer();
+}
+
+class _$CategorySerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Category, _$Category];
+ @override
+ final String wireName = r'Category';
+
+ @override
+ Iterable serialize(Serializers serializers, Category object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.name != null) {
+ result
+ ..add(r'name')
+ ..add(serializers.serialize(object.name,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ Category deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = CategoryBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'name':
+ result.name = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/order.dart b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/order.dart
index dbb8eae93a7..a599897e937 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/order.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/order.dart
@@ -35,18 +35,109 @@ abstract class Order implements Built {
OrderStatusEnum get status;
// enum statusEnum { placed, approved, delivered, };
- @nullable
@BuiltValueField(wireName: r'complete')
bool get complete;
- // Boilerplate code needed to wire-up generated code
Order._();
static void _initializeBuilder(OrderBuilder b) => b
..complete = false;
factory Order([void updates(OrderBuilder b)]) = _$Order;
- static Serializer get serializer => _$orderSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$OrderSerializer();
+}
+
+class _$OrderSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Order, _$Order];
+ @override
+ final String wireName = r'Order';
+
+ @override
+ Iterable serialize(Serializers serializers, Order object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.petId != null) {
+ result
+ ..add(r'petId')
+ ..add(serializers.serialize(object.petId,
+ specifiedType: const FullType(int)));
+ }
+ if (object.quantity != null) {
+ result
+ ..add(r'quantity')
+ ..add(serializers.serialize(object.quantity,
+ specifiedType: const FullType(int)));
+ }
+ if (object.shipDate != null) {
+ result
+ ..add(r'shipDate')
+ ..add(serializers.serialize(object.shipDate,
+ specifiedType: const FullType(DateTime)));
+ }
+ if (object.status != null) {
+ result
+ ..add(r'status')
+ ..add(serializers.serialize(object.status,
+ specifiedType: const FullType(OrderStatusEnum)));
+ }
+ if (object.complete != null) {
+ result
+ ..add(r'complete')
+ ..add(serializers.serialize(object.complete,
+ specifiedType: const FullType(bool)));
+ }
+ return result;
+ }
+
+ @override
+ Order deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = OrderBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'petId':
+ result.petId = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'quantity':
+ result.quantity = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'shipDate':
+ result.shipDate = serializers.deserialize(value,
+ specifiedType: const FullType(DateTime)) as DateTime;
+ break;
+ case r'status':
+ result.status = serializers.deserialize(value,
+ specifiedType: const FullType(OrderStatusEnum)) as OrderStatusEnum;
+ break;
+ case r'complete':
+ result.complete = serializers.deserialize(value,
+ specifiedType: const FullType(bool)) as bool;
+ break;
+ }
+ }
+ return result.build();
+ }
}
class OrderStatusEnum extends EnumClass {
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/pet.dart b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/pet.dart
index c59036a4957..e18fe54222c 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/pet.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/pet.dart
@@ -23,11 +23,9 @@ abstract class Pet implements Built {
@BuiltValueField(wireName: r'category')
Category get category;
- @nullable
@BuiltValueField(wireName: r'name')
String get name;
- @nullable
@BuiltValueField(wireName: r'photoUrls')
BuiltList get photoUrls;
@@ -41,13 +39,101 @@ abstract class Pet implements Built {
PetStatusEnum get status;
// enum statusEnum { available, pending, sold, };
- // Boilerplate code needed to wire-up generated code
Pet._();
static void _initializeBuilder(PetBuilder b) => b;
factory Pet([void updates(PetBuilder b)]) = _$Pet;
- static Serializer get serializer => _$petSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$PetSerializer();
+}
+
+class _$PetSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Pet, _$Pet];
+ @override
+ final String wireName = r'Pet';
+
+ @override
+ Iterable serialize(Serializers serializers, Pet object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.category != null) {
+ result
+ ..add(r'category')
+ ..add(serializers.serialize(object.category,
+ specifiedType: const FullType(Category)));
+ }
+ result
+ ..add(r'name')
+ ..add(serializers.serialize(object.name,
+ specifiedType: const FullType(String)));
+ result
+ ..add(r'photoUrls')
+ ..add(serializers.serialize(object.photoUrls,
+ specifiedType: const FullType(BuiltList, [FullType(String)])));
+ if (object.tags != null) {
+ result
+ ..add(r'tags')
+ ..add(serializers.serialize(object.tags,
+ specifiedType: const FullType(BuiltList, [FullType(Tag)])));
+ }
+ if (object.status != null) {
+ result
+ ..add(r'status')
+ ..add(serializers.serialize(object.status,
+ specifiedType: const FullType(PetStatusEnum)));
+ }
+ return result;
+ }
+
+ @override
+ Pet deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = PetBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'category':
+ result.category.replace(serializers.deserialize(value,
+ specifiedType: const FullType(Category)) as Category);
+ break;
+ case r'name':
+ result.name = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'photoUrls':
+ result.photoUrls.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList);
+ break;
+ case r'tags':
+ result.tags.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(Tag)])) as BuiltList);
+ break;
+ case r'status':
+ result.status = serializers.deserialize(value,
+ specifiedType: const FullType(PetStatusEnum)) as PetStatusEnum;
+ break;
+ }
+ }
+ return result.build();
+ }
}
class PetStatusEnum extends EnumClass {
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/tag.dart b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/tag.dart
index 853bbc85753..d612fdd0024 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/tag.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/tag.dart
@@ -20,12 +20,64 @@ abstract class Tag implements Built {
@BuiltValueField(wireName: r'name')
String get name;
- // Boilerplate code needed to wire-up generated code
Tag._();
static void _initializeBuilder(TagBuilder b) => b;
factory Tag([void updates(TagBuilder b)]) = _$Tag;
- static Serializer get serializer => _$tagSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$TagSerializer();
+}
+
+class _$TagSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Tag, _$Tag];
+ @override
+ final String wireName = r'Tag';
+
+ @override
+ Iterable serialize(Serializers serializers, Tag object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.name != null) {
+ result
+ ..add(r'name')
+ ..add(serializers.serialize(object.name,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ Tag deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = TagBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'name':
+ result.name = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/user.dart b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/user.dart
index 93b71f38337..a13b71072c2 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/user.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/lib/model/user.dart
@@ -45,12 +45,124 @@ abstract class User implements Built {
@BuiltValueField(wireName: r'userStatus')
int get userStatus;
- // Boilerplate code needed to wire-up generated code
User._();
static void _initializeBuilder(UserBuilder b) => b;
factory User([void updates(UserBuilder b)]) = _$User;
- static Serializer get serializer => _$userSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$UserSerializer();
+}
+
+class _$UserSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [User, _$User];
+ @override
+ final String wireName = r'User';
+
+ @override
+ Iterable serialize(Serializers serializers, User object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.username != null) {
+ result
+ ..add(r'username')
+ ..add(serializers.serialize(object.username,
+ specifiedType: const FullType(String)));
+ }
+ if (object.firstName != null) {
+ result
+ ..add(r'firstName')
+ ..add(serializers.serialize(object.firstName,
+ specifiedType: const FullType(String)));
+ }
+ if (object.lastName != null) {
+ result
+ ..add(r'lastName')
+ ..add(serializers.serialize(object.lastName,
+ specifiedType: const FullType(String)));
+ }
+ if (object.email != null) {
+ result
+ ..add(r'email')
+ ..add(serializers.serialize(object.email,
+ specifiedType: const FullType(String)));
+ }
+ if (object.password != null) {
+ result
+ ..add(r'password')
+ ..add(serializers.serialize(object.password,
+ specifiedType: const FullType(String)));
+ }
+ if (object.phone != null) {
+ result
+ ..add(r'phone')
+ ..add(serializers.serialize(object.phone,
+ specifiedType: const FullType(String)));
+ }
+ if (object.userStatus != null) {
+ result
+ ..add(r'userStatus')
+ ..add(serializers.serialize(object.userStatus,
+ specifiedType: const FullType(int)));
+ }
+ return result;
+ }
+
+ @override
+ User deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = UserBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'username':
+ result.username = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'firstName':
+ result.firstName = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'lastName':
+ result.lastName = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'email':
+ result.email = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'password':
+ result.password = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'phone':
+ result.phone = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'userStatus':
+ result.userStatus = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/test/api_response_test.dart b/samples/client/petstore/dart-dio/petstore_client_lib/test/api_response_test.dart
index 39d3ffc2941..cb3253820b5 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/test/api_response_test.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/test/api_response_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for ApiResponse
void main() {
- final instance = ApiResponse();
+ final instance = ApiResponseBuilder();
+ // TODO add properties to the builder and call build()
group(ApiResponse, () {
// int code
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/test/category_test.dart b/samples/client/petstore/dart-dio/petstore_client_lib/test/category_test.dart
index cf8f893d513..efe01d9b3cb 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/test/category_test.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/test/category_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for Category
void main() {
- final instance = Category();
+ final instance = CategoryBuilder();
+ // TODO add properties to the builder and call build()
group(Category, () {
// int id
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/test/order_test.dart b/samples/client/petstore/dart-dio/petstore_client_lib/test/order_test.dart
index 25b2cc396f3..0b063de2de5 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/test/order_test.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/test/order_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for Order
void main() {
- final instance = Order();
+ final instance = OrderBuilder();
+ // TODO add properties to the builder and call build()
group(Order, () {
// int id
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/test/pet_test.dart b/samples/client/petstore/dart-dio/petstore_client_lib/test/pet_test.dart
index 9d5b6e4dd4a..bce1534977e 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/test/pet_test.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/test/pet_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for Pet
void main() {
- final instance = Pet();
+ final instance = PetBuilder();
+ // TODO add properties to the builder and call build()
group(Pet, () {
// int id
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/test/tag_test.dart b/samples/client/petstore/dart-dio/petstore_client_lib/test/tag_test.dart
index 0dbda6e4986..867b246921c 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/test/tag_test.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/test/tag_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for Tag
void main() {
- final instance = Tag();
+ final instance = TagBuilder();
+ // TODO add properties to the builder and call build()
group(Tag, () {
// int id
diff --git a/samples/client/petstore/dart-dio/petstore_client_lib/test/user_test.dart b/samples/client/petstore/dart-dio/petstore_client_lib/test/user_test.dart
index 09e720b625c..01a3b6f07de 100644
--- a/samples/client/petstore/dart-dio/petstore_client_lib/test/user_test.dart
+++ b/samples/client/petstore/dart-dio/petstore_client_lib/test/user_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for User
void main() {
- final instance = User();
+ final instance = UserBuilder();
+ // TODO add properties to the builder and call build()
group(User, () {
// int id
diff --git a/samples/client/petstore/dart2/petstore_client_lib/lib/model/pet.dart b/samples/client/petstore/dart2/petstore_client_lib/lib/model/pet.dart
index edb8930c11d..ee8c7615986 100644
--- a/samples/client/petstore/dart2/petstore_client_lib/lib/model/pet.dart
+++ b/samples/client/petstore/dart2/petstore_client_lib/lib/model/pet.dart
@@ -62,12 +62,8 @@ class Pet {
if (category != null) {
json[r'category'] = category;
}
- if (name != null) {
json[r'name'] = name;
- }
- if (photoUrls != null) {
json[r'photoUrls'] = photoUrls;
- }
if (tags != null) {
json[r'tags'] = tags;
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/api_response.dart
index 71e4a87d963..d1b4f0f3800 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/api_response.dart
@@ -24,12 +24,74 @@ abstract class ApiResponse implements Built {
@BuiltValueField(wireName: r'message')
String get message;
- // Boilerplate code needed to wire-up generated code
ApiResponse._();
static void _initializeBuilder(ApiResponseBuilder b) => b;
factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
- static Serializer get serializer => _$apiResponseSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$ApiResponseSerializer();
+}
+
+class _$ApiResponseSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [ApiResponse, _$ApiResponse];
+ @override
+ final String wireName = r'ApiResponse';
+
+ @override
+ Iterable serialize(Serializers serializers, ApiResponse object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.code != null) {
+ result
+ ..add(r'code')
+ ..add(serializers.serialize(object.code,
+ specifiedType: const FullType(int)));
+ }
+ if (object.type != null) {
+ result
+ ..add(r'type')
+ ..add(serializers.serialize(object.type,
+ specifiedType: const FullType(String)));
+ }
+ if (object.message != null) {
+ result
+ ..add(r'message')
+ ..add(serializers.serialize(object.message,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ ApiResponse deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = ApiResponseBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'code':
+ result.code = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'type':
+ result.type = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'message':
+ result.message = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/category.dart
index 4e47dcd7f67..ddf1cf619b5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/category.dart
@@ -20,12 +20,64 @@ abstract class Category implements Built {
@BuiltValueField(wireName: r'name')
String get name;
- // Boilerplate code needed to wire-up generated code
Category._();
static void _initializeBuilder(CategoryBuilder b) => b;
factory Category([void updates(CategoryBuilder b)]) = _$Category;
- static Serializer get serializer => _$categorySerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$CategorySerializer();
+}
+
+class _$CategorySerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Category, _$Category];
+ @override
+ final String wireName = r'Category';
+
+ @override
+ Iterable serialize(Serializers serializers, Category object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.name != null) {
+ result
+ ..add(r'name')
+ ..add(serializers.serialize(object.name,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ Category deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = CategoryBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'name':
+ result.name = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/order.dart
index dbb8eae93a7..a599897e937 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/order.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/order.dart
@@ -35,18 +35,109 @@ abstract class Order implements Built {
OrderStatusEnum get status;
// enum statusEnum { placed, approved, delivered, };
- @nullable
@BuiltValueField(wireName: r'complete')
bool get complete;
- // Boilerplate code needed to wire-up generated code
Order._();
static void _initializeBuilder(OrderBuilder b) => b
..complete = false;
factory Order([void updates(OrderBuilder b)]) = _$Order;
- static Serializer get serializer => _$orderSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$OrderSerializer();
+}
+
+class _$OrderSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Order, _$Order];
+ @override
+ final String wireName = r'Order';
+
+ @override
+ Iterable serialize(Serializers serializers, Order object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.petId != null) {
+ result
+ ..add(r'petId')
+ ..add(serializers.serialize(object.petId,
+ specifiedType: const FullType(int)));
+ }
+ if (object.quantity != null) {
+ result
+ ..add(r'quantity')
+ ..add(serializers.serialize(object.quantity,
+ specifiedType: const FullType(int)));
+ }
+ if (object.shipDate != null) {
+ result
+ ..add(r'shipDate')
+ ..add(serializers.serialize(object.shipDate,
+ specifiedType: const FullType(DateTime)));
+ }
+ if (object.status != null) {
+ result
+ ..add(r'status')
+ ..add(serializers.serialize(object.status,
+ specifiedType: const FullType(OrderStatusEnum)));
+ }
+ if (object.complete != null) {
+ result
+ ..add(r'complete')
+ ..add(serializers.serialize(object.complete,
+ specifiedType: const FullType(bool)));
+ }
+ return result;
+ }
+
+ @override
+ Order deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = OrderBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'petId':
+ result.petId = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'quantity':
+ result.quantity = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'shipDate':
+ result.shipDate = serializers.deserialize(value,
+ specifiedType: const FullType(DateTime)) as DateTime;
+ break;
+ case r'status':
+ result.status = serializers.deserialize(value,
+ specifiedType: const FullType(OrderStatusEnum)) as OrderStatusEnum;
+ break;
+ case r'complete':
+ result.complete = serializers.deserialize(value,
+ specifiedType: const FullType(bool)) as bool;
+ break;
+ }
+ }
+ return result.build();
+ }
}
class OrderStatusEnum extends EnumClass {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/pet.dart
index c59036a4957..e18fe54222c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/pet.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/pet.dart
@@ -23,11 +23,9 @@ abstract class Pet implements Built {
@BuiltValueField(wireName: r'category')
Category get category;
- @nullable
@BuiltValueField(wireName: r'name')
String get name;
- @nullable
@BuiltValueField(wireName: r'photoUrls')
BuiltList get photoUrls;
@@ -41,13 +39,101 @@ abstract class Pet implements Built {
PetStatusEnum get status;
// enum statusEnum { available, pending, sold, };
- // Boilerplate code needed to wire-up generated code
Pet._();
static void _initializeBuilder(PetBuilder b) => b;
factory Pet([void updates(PetBuilder b)]) = _$Pet;
- static Serializer get serializer => _$petSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$PetSerializer();
+}
+
+class _$PetSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Pet, _$Pet];
+ @override
+ final String wireName = r'Pet';
+
+ @override
+ Iterable serialize(Serializers serializers, Pet object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.category != null) {
+ result
+ ..add(r'category')
+ ..add(serializers.serialize(object.category,
+ specifiedType: const FullType(Category)));
+ }
+ result
+ ..add(r'name')
+ ..add(serializers.serialize(object.name,
+ specifiedType: const FullType(String)));
+ result
+ ..add(r'photoUrls')
+ ..add(serializers.serialize(object.photoUrls,
+ specifiedType: const FullType(BuiltList, [FullType(String)])));
+ if (object.tags != null) {
+ result
+ ..add(r'tags')
+ ..add(serializers.serialize(object.tags,
+ specifiedType: const FullType(BuiltList, [FullType(Tag)])));
+ }
+ if (object.status != null) {
+ result
+ ..add(r'status')
+ ..add(serializers.serialize(object.status,
+ specifiedType: const FullType(PetStatusEnum)));
+ }
+ return result;
+ }
+
+ @override
+ Pet deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = PetBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'category':
+ result.category.replace(serializers.deserialize(value,
+ specifiedType: const FullType(Category)) as Category);
+ break;
+ case r'name':
+ result.name = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'photoUrls':
+ result.photoUrls.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList);
+ break;
+ case r'tags':
+ result.tags.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(Tag)])) as BuiltList);
+ break;
+ case r'status':
+ result.status = serializers.deserialize(value,
+ specifiedType: const FullType(PetStatusEnum)) as PetStatusEnum;
+ break;
+ }
+ }
+ return result.build();
+ }
}
class PetStatusEnum extends EnumClass {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/tag.dart
index 853bbc85753..d612fdd0024 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/tag.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/tag.dart
@@ -20,12 +20,64 @@ abstract class Tag implements Built {
@BuiltValueField(wireName: r'name')
String get name;
- // Boilerplate code needed to wire-up generated code
Tag._();
static void _initializeBuilder(TagBuilder b) => b;
factory Tag([void updates(TagBuilder b)]) = _$Tag;
- static Serializer get serializer => _$tagSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$TagSerializer();
+}
+
+class _$TagSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Tag, _$Tag];
+ @override
+ final String wireName = r'Tag';
+
+ @override
+ Iterable serialize(Serializers serializers, Tag object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.name != null) {
+ result
+ ..add(r'name')
+ ..add(serializers.serialize(object.name,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ Tag deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = TagBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'name':
+ result.name = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/user.dart
index 93b71f38337..a13b71072c2 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/user.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/lib/model/user.dart
@@ -45,12 +45,124 @@ abstract class User implements Built {
@BuiltValueField(wireName: r'userStatus')
int get userStatus;
- // Boilerplate code needed to wire-up generated code
User._();
static void _initializeBuilder(UserBuilder b) => b;
factory User([void updates(UserBuilder b)]) = _$User;
- static Serializer get serializer => _$userSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$UserSerializer();
+}
+
+class _$UserSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [User, _$User];
+ @override
+ final String wireName = r'User';
+
+ @override
+ Iterable serialize(Serializers serializers, User object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ if (object.username != null) {
+ result
+ ..add(r'username')
+ ..add(serializers.serialize(object.username,
+ specifiedType: const FullType(String)));
+ }
+ if (object.firstName != null) {
+ result
+ ..add(r'firstName')
+ ..add(serializers.serialize(object.firstName,
+ specifiedType: const FullType(String)));
+ }
+ if (object.lastName != null) {
+ result
+ ..add(r'lastName')
+ ..add(serializers.serialize(object.lastName,
+ specifiedType: const FullType(String)));
+ }
+ if (object.email != null) {
+ result
+ ..add(r'email')
+ ..add(serializers.serialize(object.email,
+ specifiedType: const FullType(String)));
+ }
+ if (object.password != null) {
+ result
+ ..add(r'password')
+ ..add(serializers.serialize(object.password,
+ specifiedType: const FullType(String)));
+ }
+ if (object.phone != null) {
+ result
+ ..add(r'phone')
+ ..add(serializers.serialize(object.phone,
+ specifiedType: const FullType(String)));
+ }
+ if (object.userStatus != null) {
+ result
+ ..add(r'userStatus')
+ ..add(serializers.serialize(object.userStatus,
+ specifiedType: const FullType(int)));
+ }
+ return result;
+ }
+
+ @override
+ User deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = UserBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'username':
+ result.username = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'firstName':
+ result.firstName = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'lastName':
+ result.lastName = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'email':
+ result.email = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'password':
+ result.password = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'phone':
+ result.phone = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'userStatus':
+ result.userStatus = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/api_response_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/api_response_test.dart
index 39d3ffc2941..cb3253820b5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/api_response_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/api_response_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for ApiResponse
void main() {
- final instance = ApiResponse();
+ final instance = ApiResponseBuilder();
+ // TODO add properties to the builder and call build()
group(ApiResponse, () {
// int code
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/category_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/category_test.dart
index cf8f893d513..efe01d9b3cb 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/category_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/category_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for Category
void main() {
- final instance = Category();
+ final instance = CategoryBuilder();
+ // TODO add properties to the builder and call build()
group(Category, () {
// int id
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/order_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/order_test.dart
index 25b2cc396f3..0b063de2de5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/order_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/order_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for Order
void main() {
- final instance = Order();
+ final instance = OrderBuilder();
+ // TODO add properties to the builder and call build()
group(Order, () {
// int id
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/pet_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/pet_test.dart
index 9d5b6e4dd4a..bce1534977e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/pet_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/pet_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for Pet
void main() {
- final instance = Pet();
+ final instance = PetBuilder();
+ // TODO add properties to the builder and call build()
group(Pet, () {
// int id
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/tag_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/tag_test.dart
index 0dbda6e4986..867b246921c 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/tag_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/tag_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for Tag
void main() {
- final instance = Tag();
+ final instance = TagBuilder();
+ // TODO add properties to the builder and call build()
group(Tag, () {
// int id
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/user_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/user_test.dart
index 09e720b625c..01a3b6f07de 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/user_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib/test/user_test.dart
@@ -3,7 +3,8 @@ import 'package:test/test.dart';
// tests for User
void main() {
- final instance = User();
+ final instance = UserBuilder();
+ // TODO add properties to the builder and call build()
group(User, () {
// int id
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/additional_properties_class.dart
index 70bd6bc1100..c453e37f171 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/additional_properties_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/additional_properties_class.dart
@@ -21,12 +21,64 @@ abstract class AdditionalPropertiesClass implements Built> get mapOfMapProperty;
- // Boilerplate code needed to wire-up generated code
AdditionalPropertiesClass._();
static void _initializeBuilder(AdditionalPropertiesClassBuilder b) => b;
factory AdditionalPropertiesClass([void updates(AdditionalPropertiesClassBuilder b)]) = _$AdditionalPropertiesClass;
- static Serializer get serializer => _$additionalPropertiesClassSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$AdditionalPropertiesClassSerializer();
+}
+
+class _$AdditionalPropertiesClassSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [AdditionalPropertiesClass, _$AdditionalPropertiesClass];
+ @override
+ final String wireName = r'AdditionalPropertiesClass';
+
+ @override
+ Iterable serialize(Serializers serializers, AdditionalPropertiesClass object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.mapProperty != null) {
+ result
+ ..add(r'map_property')
+ ..add(serializers.serialize(object.mapProperty,
+ specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)])));
+ }
+ if (object.mapOfMapProperty != null) {
+ result
+ ..add(r'map_of_map_property')
+ ..add(serializers.serialize(object.mapOfMapProperty,
+ specifiedType: const FullType(BuiltMap, [FullType(String), FullType(BuiltMap, [FullType(String), FullType(String)])])));
+ }
+ return result;
+ }
+
+ @override
+ AdditionalPropertiesClass deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = AdditionalPropertiesClassBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'map_property':
+ result.mapProperty.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltMap, [FullType(String), FullType(String)])) as BuiltMap);
+ 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>);
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/animal.dart
index 76dbbd896a2..430cb733781 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/animal.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/animal.dart
@@ -12,21 +12,69 @@ part 'animal.g.dart';
abstract class Animal implements Built {
- @nullable
@BuiltValueField(wireName: r'className')
String get className;
- @nullable
@BuiltValueField(wireName: r'color')
String get color;
- // Boilerplate code needed to wire-up generated code
Animal._();
static void _initializeBuilder(AnimalBuilder b) => b
..color = 'red';
factory Animal([void updates(AnimalBuilder b)]) = _$Animal;
- static Serializer get serializer => _$animalSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$AnimalSerializer();
+}
+
+class _$AnimalSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Animal, _$Animal];
+ @override
+ final String wireName = r'Animal';
+
+ @override
+ Iterable serialize(Serializers serializers, Animal object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ result
+ ..add(r'className')
+ ..add(serializers.serialize(object.className,
+ specifiedType: const FullType(String)));
+ if (object.color != null) {
+ result
+ ..add(r'color')
+ ..add(serializers.serialize(object.color,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ Animal deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = AnimalBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'className':
+ result.className = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'color':
+ result.color = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/api_response.dart
index 71e4a87d963..d1b4f0f3800 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/api_response.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/api_response.dart
@@ -24,12 +24,74 @@ abstract class ApiResponse implements Built {
@BuiltValueField(wireName: r'message')
String get message;
- // Boilerplate code needed to wire-up generated code
ApiResponse._();
static void _initializeBuilder(ApiResponseBuilder b) => b;
factory ApiResponse([void updates(ApiResponseBuilder b)]) = _$ApiResponse;
- static Serializer get serializer => _$apiResponseSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$ApiResponseSerializer();
+}
+
+class _$ApiResponseSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [ApiResponse, _$ApiResponse];
+ @override
+ final String wireName = r'ApiResponse';
+
+ @override
+ Iterable serialize(Serializers serializers, ApiResponse object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.code != null) {
+ result
+ ..add(r'code')
+ ..add(serializers.serialize(object.code,
+ specifiedType: const FullType(int)));
+ }
+ if (object.type != null) {
+ result
+ ..add(r'type')
+ ..add(serializers.serialize(object.type,
+ specifiedType: const FullType(String)));
+ }
+ if (object.message != null) {
+ result
+ ..add(r'message')
+ ..add(serializers.serialize(object.message,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ ApiResponse deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = ApiResponseBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'code':
+ result.code = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'type':
+ result.type = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'message':
+ result.message = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_of_array_of_number_only.dart
index 719ae878996..f0556a89a94 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_of_array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_of_array_of_number_only.dart
@@ -17,12 +17,54 @@ abstract class ArrayOfArrayOfNumberOnly implements Built> get arrayArrayNumber;
- // Boilerplate code needed to wire-up generated code
ArrayOfArrayOfNumberOnly._();
static void _initializeBuilder(ArrayOfArrayOfNumberOnlyBuilder b) => b;
factory ArrayOfArrayOfNumberOnly([void updates(ArrayOfArrayOfNumberOnlyBuilder b)]) = _$ArrayOfArrayOfNumberOnly;
- static Serializer get serializer => _$arrayOfArrayOfNumberOnlySerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$ArrayOfArrayOfNumberOnlySerializer();
+}
+
+class _$ArrayOfArrayOfNumberOnlySerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [ArrayOfArrayOfNumberOnly, _$ArrayOfArrayOfNumberOnly];
+ @override
+ final String wireName = r'ArrayOfArrayOfNumberOnly';
+
+ @override
+ Iterable serialize(Serializers serializers, ArrayOfArrayOfNumberOnly object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.arrayArrayNumber != null) {
+ result
+ ..add(r'ArrayArrayNumber')
+ ..add(serializers.serialize(object.arrayArrayNumber,
+ specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])])));
+ }
+ return result;
+ }
+
+ @override
+ ArrayOfArrayOfNumberOnly deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = ArrayOfArrayOfNumberOnlyBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'ArrayArrayNumber':
+ result.arrayArrayNumber.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(num)])])) as BuiltList>);
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_of_number_only.dart
index 84b328a5d46..c8d5e3bff19 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_of_number_only.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_of_number_only.dart
@@ -17,12 +17,54 @@ abstract class ArrayOfNumberOnly implements Built get arrayNumber;
- // Boilerplate code needed to wire-up generated code
ArrayOfNumberOnly._();
static void _initializeBuilder(ArrayOfNumberOnlyBuilder b) => b;
factory ArrayOfNumberOnly([void updates(ArrayOfNumberOnlyBuilder b)]) = _$ArrayOfNumberOnly;
- static Serializer get serializer => _$arrayOfNumberOnlySerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$ArrayOfNumberOnlySerializer();
+}
+
+class _$ArrayOfNumberOnlySerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [ArrayOfNumberOnly, _$ArrayOfNumberOnly];
+ @override
+ final String wireName = r'ArrayOfNumberOnly';
+
+ @override
+ Iterable serialize(Serializers serializers, ArrayOfNumberOnly object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.arrayNumber != null) {
+ result
+ ..add(r'ArrayNumber')
+ ..add(serializers.serialize(object.arrayNumber,
+ specifiedType: const FullType(BuiltList, [FullType(num)])));
+ }
+ return result;
+ }
+
+ @override
+ ArrayOfNumberOnly deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = ArrayOfNumberOnlyBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'ArrayNumber':
+ result.arrayNumber.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(num)])) as BuiltList);
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_test.dart
index 255f50f03eb..1864d716857 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/array_test.dart
@@ -26,12 +26,74 @@ abstract class ArrayTest implements Built {
@BuiltValueField(wireName: r'array_array_of_model')
BuiltList> get arrayArrayOfModel;
- // Boilerplate code needed to wire-up generated code
ArrayTest._();
static void _initializeBuilder(ArrayTestBuilder b) => b;
factory ArrayTest([void updates(ArrayTestBuilder b)]) = _$ArrayTest;
- static Serializer get serializer => _$arrayTestSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$ArrayTestSerializer();
+}
+
+class _$ArrayTestSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [ArrayTest, _$ArrayTest];
+ @override
+ final String wireName = r'ArrayTest';
+
+ @override
+ Iterable serialize(Serializers serializers, ArrayTest object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.arrayOfString != null) {
+ result
+ ..add(r'array_of_string')
+ ..add(serializers.serialize(object.arrayOfString,
+ specifiedType: const FullType(BuiltList, [FullType(String)])));
+ }
+ if (object.arrayArrayOfInteger != null) {
+ result
+ ..add(r'array_array_of_integer')
+ ..add(serializers.serialize(object.arrayArrayOfInteger,
+ specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])));
+ }
+ if (object.arrayArrayOfModel != null) {
+ result
+ ..add(r'array_array_of_model')
+ ..add(serializers.serialize(object.arrayArrayOfModel,
+ specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])));
+ }
+ return result;
+ }
+
+ @override
+ ArrayTest deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = ArrayTestBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'array_of_string':
+ result.arrayOfString.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(String)])) as BuiltList);
+ break;
+ case r'array_array_of_integer':
+ result.arrayArrayOfInteger.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(int)])])) as BuiltList>);
+ break;
+ case r'array_array_of_model':
+ result.arrayArrayOfModel.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(BuiltList, [FullType(ReadOnlyFirst)])])) as BuiltList>);
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/capitalization.dart
index 440cae3d5aa..2246c3680d3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/capitalization.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/capitalization.dart
@@ -37,12 +37,104 @@ abstract class Capitalization implements Built b;
factory Capitalization([void updates(CapitalizationBuilder b)]) = _$Capitalization;
- static Serializer get serializer => _$capitalizationSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$CapitalizationSerializer();
+}
+
+class _$CapitalizationSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Capitalization, _$Capitalization];
+ @override
+ final String wireName = r'Capitalization';
+
+ @override
+ Iterable serialize(Serializers serializers, Capitalization object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.smallCamel != null) {
+ result
+ ..add(r'smallCamel')
+ ..add(serializers.serialize(object.smallCamel,
+ specifiedType: const FullType(String)));
+ }
+ if (object.capitalCamel != null) {
+ result
+ ..add(r'CapitalCamel')
+ ..add(serializers.serialize(object.capitalCamel,
+ specifiedType: const FullType(String)));
+ }
+ if (object.smallSnake != null) {
+ result
+ ..add(r'small_Snake')
+ ..add(serializers.serialize(object.smallSnake,
+ specifiedType: const FullType(String)));
+ }
+ if (object.capitalSnake != null) {
+ result
+ ..add(r'Capital_Snake')
+ ..add(serializers.serialize(object.capitalSnake,
+ specifiedType: const FullType(String)));
+ }
+ if (object.sCAETHFlowPoints != null) {
+ result
+ ..add(r'SCA_ETH_Flow_Points')
+ ..add(serializers.serialize(object.sCAETHFlowPoints,
+ specifiedType: const FullType(String)));
+ }
+ if (object.ATT_NAME != null) {
+ result
+ ..add(r'ATT_NAME')
+ ..add(serializers.serialize(object.ATT_NAME,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ Capitalization deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = CapitalizationBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'smallCamel':
+ result.smallCamel = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'CapitalCamel':
+ result.capitalCamel = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'small_Snake':
+ result.smallSnake = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'Capital_Snake':
+ result.capitalSnake = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'SCA_ETH_Flow_Points':
+ result.sCAETHFlowPoints = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'ATT_NAME':
+ result.ATT_NAME = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/cat.dart
index 7d021e466d6..b2a9054c96a 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/cat.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/cat.dart
@@ -14,11 +14,9 @@ part 'cat.g.dart';
abstract class Cat implements Built {
- @nullable
@BuiltValueField(wireName: r'className')
String get className;
- @nullable
@BuiltValueField(wireName: r'color')
String get color;
@@ -26,13 +24,73 @@ abstract class Cat implements Built {
@BuiltValueField(wireName: r'declawed')
bool get declawed;
- // Boilerplate code needed to wire-up generated code
Cat._();
static void _initializeBuilder(CatBuilder b) => b
..color = 'red';
factory Cat([void updates(CatBuilder b)]) = _$Cat;
- static Serializer get serializer => _$catSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$CatSerializer();
+}
+
+class _$CatSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Cat, _$Cat];
+ @override
+ final String wireName = r'Cat';
+
+ @override
+ Iterable serialize(Serializers serializers, Cat object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ result
+ ..add(r'className')
+ ..add(serializers.serialize(object.className,
+ specifiedType: const FullType(String)));
+ if (object.color != null) {
+ result
+ ..add(r'color')
+ ..add(serializers.serialize(object.color,
+ specifiedType: const FullType(String)));
+ }
+ if (object.declawed != null) {
+ result
+ ..add(r'declawed')
+ ..add(serializers.serialize(object.declawed,
+ specifiedType: const FullType(bool)));
+ }
+ return result;
+ }
+
+ @override
+ Cat deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = CatBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'className':
+ result.className = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'color':
+ result.color = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'declawed':
+ result.declawed = serializers.deserialize(value,
+ specifiedType: const FullType(bool)) as bool;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/cat_all_of.dart
index ac25634155f..e598798902e 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/cat_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/cat_all_of.dart
@@ -16,12 +16,54 @@ abstract class CatAllOf implements Built {
@BuiltValueField(wireName: r'declawed')
bool get declawed;
- // Boilerplate code needed to wire-up generated code
CatAllOf._();
static void _initializeBuilder(CatAllOfBuilder b) => b;
factory CatAllOf([void updates(CatAllOfBuilder b)]) = _$CatAllOf;
- static Serializer get serializer => _$catAllOfSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$CatAllOfSerializer();
+}
+
+class _$CatAllOfSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [CatAllOf, _$CatAllOf];
+ @override
+ final String wireName = r'CatAllOf';
+
+ @override
+ Iterable serialize(Serializers serializers, CatAllOf object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.declawed != null) {
+ result
+ ..add(r'declawed')
+ ..add(serializers.serialize(object.declawed,
+ specifiedType: const FullType(bool)));
+ }
+ return result;
+ }
+
+ @override
+ CatAllOf deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = CatAllOfBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'declawed':
+ result.declawed = serializers.deserialize(value,
+ specifiedType: const FullType(bool)) as bool;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/category.dart
index 9cf3f0cf4cf..dbdb7fcecd6 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/category.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/category.dart
@@ -16,17 +16,66 @@ abstract class Category implements Built {
@BuiltValueField(wireName: r'id')
int get id;
- @nullable
@BuiltValueField(wireName: r'name')
String get name;
- // Boilerplate code needed to wire-up generated code
Category._();
static void _initializeBuilder(CategoryBuilder b) => b
..name = 'default-name';
factory Category([void updates(CategoryBuilder b)]) = _$Category;
- static Serializer get serializer => _$categorySerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$CategorySerializer();
+}
+
+class _$CategorySerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Category, _$Category];
+ @override
+ final String wireName = r'Category';
+
+ @override
+ Iterable serialize(Serializers serializers, Category object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.id != null) {
+ result
+ ..add(r'id')
+ ..add(serializers.serialize(object.id,
+ specifiedType: const FullType(int)));
+ }
+ result
+ ..add(r'name')
+ ..add(serializers.serialize(object.name,
+ specifiedType: const FullType(String)));
+ return result;
+ }
+
+ @override
+ Category deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = CategoryBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'id':
+ result.id = serializers.deserialize(value,
+ specifiedType: const FullType(int)) as int;
+ break;
+ case r'name':
+ result.name = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/class_model.dart
index df52d94ce2f..8cafc4a45f7 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/class_model.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/class_model.dart
@@ -16,12 +16,54 @@ abstract class ClassModel implements Built {
@BuiltValueField(wireName: r'_class')
String get class_;
- // Boilerplate code needed to wire-up generated code
ClassModel._();
static void _initializeBuilder(ClassModelBuilder b) => b;
factory ClassModel([void updates(ClassModelBuilder b)]) = _$ClassModel;
- static Serializer get serializer => _$classModelSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$ClassModelSerializer();
+}
+
+class _$ClassModelSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [ClassModel, _$ClassModel];
+ @override
+ final String wireName = r'ClassModel';
+
+ @override
+ Iterable serialize(Serializers serializers, ClassModel object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.class_ != null) {
+ result
+ ..add(r'_class')
+ ..add(serializers.serialize(object.class_,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ ClassModel deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = ClassModelBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'_class':
+ result.class_ = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/dog.dart
index 5040bbfb329..d60aadcf4b6 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/dog.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/dog.dart
@@ -14,11 +14,9 @@ part 'dog.g.dart';
abstract class Dog implements Built {
- @nullable
@BuiltValueField(wireName: r'className')
String get className;
- @nullable
@BuiltValueField(wireName: r'color')
String get color;
@@ -26,13 +24,73 @@ abstract class Dog implements Built {
@BuiltValueField(wireName: r'breed')
String get breed;
- // Boilerplate code needed to wire-up generated code
Dog._();
static void _initializeBuilder(DogBuilder b) => b
..color = 'red';
factory Dog([void updates(DogBuilder b)]) = _$Dog;
- static Serializer get serializer => _$dogSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$DogSerializer();
+}
+
+class _$DogSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [Dog, _$Dog];
+ @override
+ final String wireName = r'Dog';
+
+ @override
+ Iterable serialize(Serializers serializers, Dog object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ result
+ ..add(r'className')
+ ..add(serializers.serialize(object.className,
+ specifiedType: const FullType(String)));
+ if (object.color != null) {
+ result
+ ..add(r'color')
+ ..add(serializers.serialize(object.color,
+ specifiedType: const FullType(String)));
+ }
+ if (object.breed != null) {
+ result
+ ..add(r'breed')
+ ..add(serializers.serialize(object.breed,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ Dog deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = DogBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'className':
+ result.className = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'color':
+ result.color = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ case r'breed':
+ result.breed = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/dog_all_of.dart
index cf1a72508cc..df916db1a16 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/dog_all_of.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/dog_all_of.dart
@@ -16,12 +16,54 @@ abstract class DogAllOf implements Built {
@BuiltValueField(wireName: r'breed')
String get breed;
- // Boilerplate code needed to wire-up generated code
DogAllOf._();
static void _initializeBuilder(DogAllOfBuilder b) => b;
factory DogAllOf([void updates(DogAllOfBuilder b)]) = _$DogAllOf;
- static Serializer get serializer => _$dogAllOfSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$DogAllOfSerializer();
+}
+
+class _$DogAllOfSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [DogAllOf, _$DogAllOf];
+ @override
+ final String wireName = r'DogAllOf';
+
+ @override
+ Iterable serialize(Serializers serializers, DogAllOf object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.breed != null) {
+ result
+ ..add(r'breed')
+ ..add(serializers.serialize(object.breed,
+ specifiedType: const FullType(String)));
+ }
+ return result;
+ }
+
+ @override
+ DogAllOf deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = DogAllOfBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'breed':
+ result.breed = serializers.deserialize(value,
+ specifiedType: const FullType(String)) as String;
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/enum_arrays.dart
index 77177940ad8..3a5fb62af15 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/enum_arrays.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/enum_arrays.dart
@@ -23,13 +23,65 @@ abstract class EnumArrays implements Built {
BuiltList get arrayEnum;
// enum arrayEnumEnum { fish, crab, };
- // Boilerplate code needed to wire-up generated code
EnumArrays._();
static void _initializeBuilder(EnumArraysBuilder b) => b;
factory EnumArrays([void updates(EnumArraysBuilder b)]) = _$EnumArrays;
- static Serializer get serializer => _$enumArraysSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$EnumArraysSerializer();
+}
+
+class _$EnumArraysSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [EnumArrays, _$EnumArrays];
+ @override
+ final String wireName = r'EnumArrays';
+
+ @override
+ Iterable serialize(Serializers serializers, EnumArrays object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.justSymbol != null) {
+ result
+ ..add(r'just_symbol')
+ ..add(serializers.serialize(object.justSymbol,
+ specifiedType: const FullType(EnumArraysJustSymbolEnum)));
+ }
+ if (object.arrayEnum != null) {
+ result
+ ..add(r'array_enum')
+ ..add(serializers.serialize(object.arrayEnum,
+ specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])));
+ }
+ return result;
+ }
+
+ @override
+ EnumArrays deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = EnumArraysBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'just_symbol':
+ result.justSymbol = serializers.deserialize(value,
+ specifiedType: const FullType(EnumArraysJustSymbolEnum)) as EnumArraysJustSymbolEnum;
+ break;
+ case r'array_enum':
+ result.arrayEnum.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(EnumArraysArrayEnumEnum)])) as BuiltList);
+ break;
+ }
+ }
+ return result.build();
+ }
}
class EnumArraysJustSymbolEnum extends EnumClass {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/enum_test.dart
index 8a2211cdbd3..4df59b2cc37 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/enum_test.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/enum_test.dart
@@ -22,7 +22,6 @@ abstract class EnumTest implements Built {
EnumTestEnumStringEnum get enumString;
// enum enumStringEnum { UPPER, lower, , };
- @nullable
@BuiltValueField(wireName: r'enum_string_required')
EnumTestEnumStringRequiredEnum get enumStringRequired;
// enum enumStringRequiredEnum { UPPER, lower, , };
@@ -57,13 +56,123 @@ abstract class EnumTest implements Built {
OuterEnumIntegerDefaultValue get outerEnumIntegerDefaultValue;
// enum outerEnumIntegerDefaultValueEnum { 0, 1, 2, };
- // Boilerplate code needed to wire-up generated code
EnumTest._();
static void _initializeBuilder(EnumTestBuilder b) => b;
factory EnumTest([void updates(EnumTestBuilder b)]) = _$EnumTest;
- static Serializer get serializer => _$enumTestSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$EnumTestSerializer();
+}
+
+class _$EnumTestSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [EnumTest, _$EnumTest];
+ @override
+ final String wireName = r'EnumTest';
+
+ @override
+ Iterable serialize(Serializers serializers, EnumTest object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.enumString != null) {
+ result
+ ..add(r'enum_string')
+ ..add(serializers.serialize(object.enumString,
+ specifiedType: const FullType(EnumTestEnumStringEnum)));
+ }
+ result
+ ..add(r'enum_string_required')
+ ..add(serializers.serialize(object.enumStringRequired,
+ specifiedType: const FullType(EnumTestEnumStringRequiredEnum)));
+ if (object.enumInteger != null) {
+ result
+ ..add(r'enum_integer')
+ ..add(serializers.serialize(object.enumInteger,
+ specifiedType: const FullType(EnumTestEnumIntegerEnum)));
+ }
+ if (object.enumNumber != null) {
+ result
+ ..add(r'enum_number')
+ ..add(serializers.serialize(object.enumNumber,
+ specifiedType: const FullType(EnumTestEnumNumberEnum)));
+ }
+ if (object.outerEnum != null) {
+ result
+ ..add(r'outerEnum')
+ ..add(serializers.serialize(object.outerEnum,
+ specifiedType: const FullType(OuterEnum)));
+ }
+ if (object.outerEnumInteger != null) {
+ result
+ ..add(r'outerEnumInteger')
+ ..add(serializers.serialize(object.outerEnumInteger,
+ specifiedType: const FullType(OuterEnumInteger)));
+ }
+ if (object.outerEnumDefaultValue != null) {
+ result
+ ..add(r'outerEnumDefaultValue')
+ ..add(serializers.serialize(object.outerEnumDefaultValue,
+ specifiedType: const FullType(OuterEnumDefaultValue)));
+ }
+ if (object.outerEnumIntegerDefaultValue != null) {
+ result
+ ..add(r'outerEnumIntegerDefaultValue')
+ ..add(serializers.serialize(object.outerEnumIntegerDefaultValue,
+ specifiedType: const FullType(OuterEnumIntegerDefaultValue)));
+ }
+ return result;
+ }
+
+ @override
+ EnumTest deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = EnumTestBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'enum_string':
+ result.enumString = serializers.deserialize(value,
+ specifiedType: const FullType(EnumTestEnumStringEnum)) as EnumTestEnumStringEnum;
+ break;
+ case r'enum_string_required':
+ result.enumStringRequired = serializers.deserialize(value,
+ specifiedType: const FullType(EnumTestEnumStringRequiredEnum)) as EnumTestEnumStringRequiredEnum;
+ break;
+ case r'enum_integer':
+ result.enumInteger = serializers.deserialize(value,
+ specifiedType: const FullType(EnumTestEnumIntegerEnum)) as EnumTestEnumIntegerEnum;
+ break;
+ case r'enum_number':
+ result.enumNumber = serializers.deserialize(value,
+ specifiedType: const FullType(EnumTestEnumNumberEnum)) as EnumTestEnumNumberEnum;
+ break;
+ case r'outerEnum':
+ result.outerEnum = serializers.deserialize(value,
+ specifiedType: const FullType(OuterEnum)) as OuterEnum;
+ break;
+ case r'outerEnumInteger':
+ result.outerEnumInteger = serializers.deserialize(value,
+ specifiedType: const FullType(OuterEnumInteger)) as OuterEnumInteger;
+ break;
+ case r'outerEnumDefaultValue':
+ result.outerEnumDefaultValue = serializers.deserialize(value,
+ specifiedType: const FullType(OuterEnumDefaultValue)) as OuterEnumDefaultValue;
+ break;
+ case r'outerEnumIntegerDefaultValue':
+ result.outerEnumIntegerDefaultValue = serializers.deserialize(value,
+ specifiedType: const FullType(OuterEnumIntegerDefaultValue)) as OuterEnumIntegerDefaultValue;
+ break;
+ }
+ }
+ return result.build();
+ }
}
class EnumTestEnumStringEnum extends EnumClass {
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/file_schema_test_class.dart
index 0a62e4e9c0f..82e4640a8a5 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/file_schema_test_class.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/file_schema_test_class.dart
@@ -22,12 +22,64 @@ abstract class FileSchemaTestClass implements Built get files;
- // Boilerplate code needed to wire-up generated code
FileSchemaTestClass._();
static void _initializeBuilder(FileSchemaTestClassBuilder b) => b;
factory FileSchemaTestClass([void updates(FileSchemaTestClassBuilder b)]) = _$FileSchemaTestClass;
- static Serializer get serializer => _$fileSchemaTestClassSerializer;
+
+ @BuiltValueSerializer(custom: true)
+ static Serializer get serializer => _$FileSchemaTestClassSerializer();
+}
+
+class _$FileSchemaTestClassSerializer implements StructuredSerializer {
+
+ @override
+ final Iterable types = const [FileSchemaTestClass, _$FileSchemaTestClass];
+ @override
+ final String wireName = r'FileSchemaTestClass';
+
+ @override
+ Iterable serialize(Serializers serializers, FileSchemaTestClass object,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = [];
+ if (object.file != null) {
+ result
+ ..add(r'file')
+ ..add(serializers.serialize(object.file,
+ specifiedType: const FullType(ModelFile)));
+ }
+ if (object.files != null) {
+ result
+ ..add(r'files')
+ ..add(serializers.serialize(object.files,
+ specifiedType: const FullType(BuiltList, [FullType(ModelFile)])));
+ }
+ return result;
+ }
+
+ @override
+ FileSchemaTestClass deserialize(Serializers serializers, Iterable serialized,
+ {FullType specifiedType = FullType.unspecified}) {
+ final result = FileSchemaTestClassBuilder();
+
+ final iterator = serialized.iterator;
+ while (iterator.moveNext()) {
+ final key = iterator.current as String;
+ iterator.moveNext();
+ final dynamic value = iterator.current;
+ switch (key) {
+ case r'file':
+ result.file.replace(serializers.deserialize(value,
+ specifiedType: const FullType(ModelFile)) as ModelFile);
+ break;
+ case r'files':
+ result.files.replace(serializers.deserialize(value,
+ specifiedType: const FullType(BuiltList, [FullType(ModelFile)])) as BuiltList);
+ break;
+ }
+ }
+ return result.build();
+ }
}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/foo.dart
index a51526b1fbe..94e50e4b7c3 100644
--- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/foo.dart
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/foo.dart
@@ -12,17 +12,58 @@ part 'foo.g.dart';
abstract class Foo implements Built