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 25e60dc0a311..084528423653 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 @@ -19,10 +19,13 @@ import com.google.common.collect.Sets; import com.samskivert.mustache.Mustache; import com.samskivert.mustache.Template; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.media.Discriminator; import io.swagger.v3.oas.models.media.Schema; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; +import org.openapitools.codegen.CodegenDiscriminator.MappedModel; import org.openapitools.codegen.api.TemplatePathLocator; import org.openapitools.codegen.config.GlobalSettings; import org.openapitools.codegen.meta.GeneratorMetadata; @@ -44,6 +47,7 @@ import java.io.File; import java.util.*; +import java.util.Map.Entry; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -275,7 +279,7 @@ private void configureSerializationLibraryJsonSerializable(String srcFolder) { imports.put("Uint8List", "dart:typed_data"); imports.put("MultipartFile", DIO_IMPORT); } - + private void configureDateLibrary(String srcFolder) { switch (dateLibrary) { case DATE_LIBRARY_TIME_MACHINE: @@ -400,6 +404,7 @@ private void syncRootTypesWithInnerVars(Map objs, CodegenM private final String kHasAncestorOnlyProps = "x-has-ancestor-only-props"; private final String kSelfAndAncestorOnlyProps = "x-self-and-ancestor-only-props"; private final String kHasSelfAndAncestorOnlyProps = "x-has-self-and-ancestor-only-props"; + private final String kParentDiscriminator = "x-parent-discriminator"; // adapts codegen models and property to dart rules of inheritance private void adaptToDartInheritance(Map objs) { @@ -449,6 +454,14 @@ private void adaptToDartInheritance(Map objs) { cm.vendorExtensions.put(kIsChild, isChild); cm.vendorExtensions.put(kIsParent, isParent); cm.vendorExtensions.put(kIsPure, isPure); + if (!isParent && (cm.oneOf == null || cm.oneOf.isEmpty())) { + //discriminator has no meaning here + if (cm.discriminator!=null) { + cm.vendorExtensions.put(kParentDiscriminator, cm.discriminator); + cm.discriminator=null; + } + + } // when pure: // vars = allVars = selfOnlyProperties = kSelfAndAncestorOnlyProps // ancestorOnlyProps = empty @@ -541,6 +554,30 @@ private void adaptToDartInheritance(Map objs) { } } + /// override the default behavior of createDiscriminator + /// to remove extra mappings added as a side effect of setLegacyDiscriminatorBehavior(false) + /// this ensures 1-1 schema mapping instead of 1-many + @Override + protected CodegenDiscriminator createDiscriminator(String schemaName, Schema schema, OpenAPI openAPI) { + CodegenDiscriminator sub = super.createDiscriminator(schemaName, schema, openAPI); + Discriminator originalDiscriminator = schema.getDiscriminator(); + if (originalDiscriminator!=null) { + Map originalMapping = originalDiscriminator.getMapping(); + if (originalMapping != null && !originalMapping.isEmpty()) { + //we already have a discriminator mapping, remove everything else + for (MappedModel currentMappings : new HashSet<>(sub.getMappedModels())) { + if (originalMapping.containsKey(currentMappings.getMappingName())) { + //all good + } else { + sub.getMapping().remove(currentMappings.getMappingName()); + sub.getMappedModels().remove(currentMappings); + } + } + } + } + return sub; + } + @Override public Map postProcessAllModels(Map objs) { objs = super.postProcessAllModels(objs); diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache index a8a1339c6300..9acd5ba70a08 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache @@ -10,7 +10,9 @@ part '{{classFilename}}.g.dart'; {{>serialization/built_value/class_header}} { {{>serialization/built_value/class_members}} } - +{{#discriminator}}{{#hasDiscriminatorWithNonEmptyMapping}} +{{>serialization/built_value/class_discriminator}} +{{/hasDiscriminatorWithNonEmptyMapping}}{{/discriminator}} {{>serialization/built_value/class_serializer}}{{#vendorExtensions.x-is-parent}} {{>serialization/built_value/class_concrete}}{{/vendorExtensions.x-is-parent}} diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_discriminator.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_discriminator.mustache new file mode 100644 index 000000000000..f867345883b1 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_discriminator.mustache @@ -0,0 +1,20 @@ +extension {{classname}}DiscriminatorExt on {{classname}} { + String? get discriminatorValue { + {{#mappedModels}} + if (this is {{modelName}}) { + return r'{{mappingName}}'; + } + {{/mappedModels}} + return null; + } +} +extension {{classname}}BuilderDiscriminatorExt on {{classname}}Builder { + String? get discriminatorValue { + {{#mappedModels}} + if (this is {{modelName}}Builder) { + return r'{{mappingName}}'; + } + {{/mappedModels}} + return null; + } +} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache index d814b9ee9d02..7fb4c4d74be0 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class_members.mustache @@ -28,7 +28,7 @@ factory {{classname}}([void updates({{classname}}Builder b)]) = _${{classname}}; @BuiltValueHook(initializeBuilder: true) - static void _defaults({{{classname}}}Builder b) => b{{#vendorExtensions.x-self-and-ancestor-only-props}}{{#defaultValue}} + static void _defaults({{{classname}}}Builder b) => b{{#vendorExtensions.x-parent-discriminator}}..{{propertyName}}=b.discriminatorValue{{/vendorExtensions.x-parent-discriminator}}{{#vendorExtensions.x-self-and-ancestor-only-props}}{{#defaultValue}} ..{{{name}}} = {{#isEnum}}{{^isContainer}}const {{{enumName}}}._({{/isContainer}}{{/isEnum}}{{{defaultValue}}}{{#isEnum}}{{^isContainer}}){{/isContainer}}{{/isEnum}}{{/defaultValue}}{{/vendorExtensions.x-self-and-ancestor-only-props}}; {{/vendorExtensions.x-is-parent}} @BuiltValueSerializer(custom: true) diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart index ee5c3ec5be1d..cb769550b4f2 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar.dart @@ -32,14 +32,12 @@ abstract class Bar implements Entity, Built { @BuiltValueField(wireName: r'barPropA') String? get barPropA; - static const String discriminatorFieldName = r'@type'; - Bar._(); factory Bar([void updates(BarBuilder b)]) = _$Bar; @BuiltValueHook(initializeBuilder: true) - static void _defaults(BarBuilder b) => b; + static void _defaults(BarBuilder b) => b..atType=b.discriminatorValue; @BuiltValueSerializer(custom: true) static Serializer get serializer => _$BarSerializer(); diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart index 2cd7603faa33..8942b6433f5e 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_create.dart @@ -32,14 +32,12 @@ abstract class BarCreate implements Entity, Built { @BuiltValueField(wireName: r'barPropA') String? get barPropA; - static const String discriminatorFieldName = r'@type'; - BarCreate._(); factory BarCreate([void updates(BarCreateBuilder b)]) = _$BarCreate; @BuiltValueHook(initializeBuilder: true) - static void _defaults(BarCreateBuilder b) => b; + static void _defaults(BarCreateBuilder b) => b..atType=b.discriminatorValue; @BuiltValueSerializer(custom: true) static Serializer get serializer => _$BarCreateSerializer(); diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart index eec9b1ce5107..2b9d2727a448 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref.dart @@ -19,14 +19,12 @@ part 'bar_ref.g.dart'; /// * [atType] - When sub-classing, this defines the sub-class Extensible name @BuiltValue() abstract class BarRef implements EntityRef, Built { - static const String discriminatorFieldName = r'@type'; - BarRef._(); factory BarRef([void updates(BarRefBuilder b)]) = _$BarRef; @BuiltValueHook(initializeBuilder: true) - static void _defaults(BarRefBuilder b) => b; + static void _defaults(BarRefBuilder b) => b..atType=b.discriminatorValue; @BuiltValueSerializer(custom: true) static Serializer get serializer => _$BarRefSerializer(); diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart index 9f73e2131d5b..4af61384ab76 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/bar_ref_or_value.dart @@ -42,6 +42,29 @@ abstract class BarRefOrValue implements Built get serializer => _$BarRefOrValueSerializer(); } +extension BarRefOrValueDiscriminatorExt on BarRefOrValue { + String? get discriminatorValue { + if (this is Bar) { + return r'Bar'; + } + if (this is BarRef) { + return r'BarRef'; + } + return null; + } +} +extension BarRefOrValueBuilderDiscriminatorExt on BarRefOrValueBuilder { + String? get discriminatorValue { + if (this is BarBuilder) { + return r'Bar'; + } + if (this is BarRefBuilder) { + return r'BarRef'; + } + return null; + } +} + class _$BarRefOrValueSerializer implements PrimitiveSerializer { @override final Iterable types = const [BarRefOrValue, _$BarRefOrValue]; diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart index 040a825e092a..7e27fab47387 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity.dart @@ -41,6 +41,53 @@ abstract class Entity implements Addressable, Extensible { static Serializer get serializer => _$EntitySerializer(); } +extension EntityDiscriminatorExt on Entity { + String? get discriminatorValue { + if (this is Bar) { + return r'Bar'; + } + if (this is BarCreate) { + return r'Bar_Create'; + } + if (this is Foo) { + return r'Foo'; + } + if (this is Pasta) { + return r'Pasta'; + } + if (this is Pizza) { + return r'Pizza'; + } + if (this is PizzaSpeziale) { + return r'PizzaSpeziale'; + } + return null; + } +} +extension EntityBuilderDiscriminatorExt on EntityBuilder { + String? get discriminatorValue { + if (this is BarBuilder) { + return r'Bar'; + } + if (this is BarCreateBuilder) { + return r'Bar_Create'; + } + if (this is FooBuilder) { + return r'Foo'; + } + if (this is PastaBuilder) { + return r'Pasta'; + } + if (this is PizzaBuilder) { + return r'Pizza'; + } + if (this is PizzaSpezialeBuilder) { + return r'PizzaSpeziale'; + } + return null; + } +} + class _$EntitySerializer implements PrimitiveSerializer { @override final Iterable types = const [Entity]; diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart index 872209eab5d5..7502c94dd7f3 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/entity_ref.dart @@ -43,6 +43,29 @@ abstract class EntityRef implements Addressable, Extensible { static Serializer get serializer => _$EntityRefSerializer(); } +extension EntityRefDiscriminatorExt on EntityRef { + String? get discriminatorValue { + if (this is BarRef) { + return r'BarRef'; + } + if (this is FooRef) { + return r'FooRef'; + } + return null; + } +} +extension EntityRefBuilderDiscriminatorExt on EntityRefBuilder { + String? get discriminatorValue { + if (this is BarRefBuilder) { + return r'BarRef'; + } + if (this is FooRefBuilder) { + return r'FooRef'; + } + return null; + } +} + class _$EntityRefSerializer implements PrimitiveSerializer { @override final Iterable types = const [EntityRef]; diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart index bd5e339c469e..d2e1f5817f20 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo.dart @@ -27,14 +27,12 @@ abstract class Foo implements Entity, Built { @BuiltValueField(wireName: r'fooPropB') String? get fooPropB; - static const String discriminatorFieldName = r'@type'; - Foo._(); factory Foo([void updates(FooBuilder b)]) = _$Foo; @BuiltValueHook(initializeBuilder: true) - static void _defaults(FooBuilder b) => b; + static void _defaults(FooBuilder b) => b..atType=b.discriminatorValue; @BuiltValueSerializer(custom: true) static Serializer get serializer => _$FooSerializer(); diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart index 7e92a709f675..1f77d990f0e8 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref.dart @@ -23,14 +23,12 @@ abstract class FooRef implements EntityRef, Built { @BuiltValueField(wireName: r'foorefPropA') String? get foorefPropA; - static const String discriminatorFieldName = r'@type'; - FooRef._(); factory FooRef([void updates(FooRefBuilder b)]) = _$FooRef; @BuiltValueHook(initializeBuilder: true) - static void _defaults(FooRefBuilder b) => b; + static void _defaults(FooRefBuilder b) => b..atType=b.discriminatorValue; @BuiltValueSerializer(custom: true) static Serializer get serializer => _$FooRefSerializer(); diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart index 115d11d8f689..af3e4875d9d6 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/foo_ref_or_value.dart @@ -42,6 +42,29 @@ abstract class FooRefOrValue implements Built get serializer => _$FooRefOrValueSerializer(); } +extension FooRefOrValueDiscriminatorExt on FooRefOrValue { + String? get discriminatorValue { + if (this is Foo) { + return r'Foo'; + } + if (this is FooRef) { + return r'FooRef'; + } + return null; + } +} +extension FooRefOrValueBuilderDiscriminatorExt on FooRefOrValueBuilder { + String? get discriminatorValue { + if (this is FooBuilder) { + return r'Foo'; + } + if (this is FooRefBuilder) { + return r'FooRef'; + } + return null; + } +} + class _$FooRefOrValueSerializer implements PrimitiveSerializer { @override final Iterable types = const [FooRefOrValue, _$FooRefOrValue]; diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart index 5af34ea17681..e8b1ebdf31ea 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pasta.dart @@ -23,14 +23,12 @@ abstract class Pasta implements Entity, Built { @BuiltValueField(wireName: r'vendor') String? get vendor; - static const String discriminatorFieldName = r'@type'; - Pasta._(); factory Pasta([void updates(PastaBuilder b)]) = _$Pasta; @BuiltValueHook(initializeBuilder: true) - static void _defaults(PastaBuilder b) => b; + static void _defaults(PastaBuilder b) => b..atType=b.discriminatorValue; @BuiltValueSerializer(custom: true) static Serializer get serializer => _$PastaSerializer(); diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart index 2948323c9e44..14c06db06d7e 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza.dart @@ -34,6 +34,23 @@ abstract class Pizza implements Entity { static Serializer get serializer => _$PizzaSerializer(); } +extension PizzaDiscriminatorExt on Pizza { + String? get discriminatorValue { + if (this is PizzaSpeziale) { + return r'PizzaSpeziale'; + } + return null; + } +} +extension PizzaBuilderDiscriminatorExt on PizzaBuilder { + String? get discriminatorValue { + if (this is PizzaSpezialeBuilder) { + return r'PizzaSpeziale'; + } + return null; + } +} + class _$PizzaSerializer implements PrimitiveSerializer { @override final Iterable types = const [Pizza]; diff --git a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart index dd911e1a1197..673052cc8fcf 100644 --- a/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart +++ b/samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/model/pizza_speziale.dart @@ -23,14 +23,12 @@ abstract class PizzaSpeziale implements Pizza, Built b; + static void _defaults(PizzaSpezialeBuilder b) => b..atType=b.discriminatorValue; @BuiltValueSerializer(custom: true) static Serializer get serializer => _$PizzaSpezialeSerializer(); diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart index babed8cbcff1..01a52a6a1707 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/animal.dart @@ -34,6 +34,29 @@ abstract class Animal { static Serializer get serializer => _$AnimalSerializer(); } +extension AnimalDiscriminatorExt on Animal { + String? get discriminatorValue { + if (this is Cat) { + return r'Cat'; + } + if (this is Dog) { + return r'Dog'; + } + return null; + } +} +extension AnimalBuilderDiscriminatorExt on AnimalBuilder { + String? get discriminatorValue { + if (this is CatBuilder) { + return r'Cat'; + } + if (this is DogBuilder) { + return r'Dog'; + } + return null; + } +} + class _$AnimalSerializer implements PrimitiveSerializer { @override final Iterable types = const [Animal]; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart index 31a2b14769c3..23d19b38b05a 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/cat.dart @@ -18,14 +18,12 @@ part 'cat.g.dart'; /// * [declawed] @BuiltValue() abstract class Cat implements Animal, CatAllOf, Built { - static const String discriminatorFieldName = r'className'; - Cat._(); factory Cat([void updates(CatBuilder b)]) = _$Cat; @BuiltValueHook(initializeBuilder: true) - static void _defaults(CatBuilder b) => b + static void _defaults(CatBuilder b) => b..className=b.discriminatorValue ..color = 'red'; @BuiltValueSerializer(custom: true) diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart index b7cb6bf731fd..4d9974f25b1d 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/model/dog.dart @@ -18,14 +18,12 @@ part 'dog.g.dart'; /// * [breed] @BuiltValue() abstract class Dog implements Animal, DogAllOf, Built { - static const String discriminatorFieldName = r'className'; - Dog._(); factory Dog([void updates(DogBuilder b)]) = _$Dog; @BuiltValueHook(initializeBuilder: true) - static void _defaults(DogBuilder b) => b + static void _defaults(DogBuilder b) => b..className=b.discriminatorValue ..color = 'red'; @BuiltValueSerializer(custom: true)