From 2cdbfd63eb83b9a662b3efa8b6fbdd68071f44ed Mon Sep 17 00:00:00 2001 From: Peter Leibiger Date: Wed, 9 Dec 2020 14:12:03 +0100 Subject: [PATCH] [dart][dart-dio] Enum fixes specific to Dart DIO (#8114) * [dart-dio] Fix wrong escaped serializer names * [dart-dio] Prevent enum name collisions in inlined enums Prefix the private built_value instances with the enum class name. Prevents clashes when multiple inline enums contain the same value - for example `EnumTest`. No breaking changes here as all the changed fields/references are private and automatically re-generated with built_value. --- .../main/resources/dart-dio/class.mustache | 2 +- .../src/main/resources/dart-dio/enum.mustache | 4 ++-- .../resources/dart-dio/enum_inline.mustache | 10 +++++----- .../petstore_client_lib/lib/model/order.dart | 6 +++--- .../petstore_client_lib/lib/model/pet.dart | 6 +++--- .../petstore_client_lib/lib/model/order.dart | 6 +++--- .../petstore_client_lib/lib/model/pet.dart | 6 +++--- .../lib/model/enum_arrays.dart | 8 ++++---- .../lib/model/enum_test.dart | 20 +++++++++---------- .../lib/model/inline_object2.dart | 10 +++++----- .../lib/model/map_test.dart | 4 ++-- .../lib/model/model200_response.dart | 2 +- .../lib/model/model_enum_class.dart | 2 +- .../lib/model/model_return.dart | 2 +- .../lib/model/order.dart | 6 +++--- .../lib/model/pet.dart | 6 +++--- 16 files changed, 50 insertions(+), 50 deletions(-) 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 5ad5beee02c..2be19d6d635 100644 --- a/modules/openapi-generator/src/main/resources/dart-dio/class.mustache +++ b/modules/openapi-generator/src/main/resources/dart-dio/class.mustache @@ -21,7 +21,7 @@ abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builde {{classname}}._(); factory {{classname}}([updates({{classname}}Builder b)]) = _${{classname}}; - static Serializer<{{classname}}> get serializer => _${{classVarName}}Serializer; + static Serializer<{{classname}}> get serializer => _${{#lambda.camelcase}}{{{classname}}}{{/lambda.camelcase}}Serializer; } {{! Generate an enum for any variables that are declared as inline enums diff --git a/modules/openapi-generator/src/main/resources/dart-dio/enum.mustache b/modules/openapi-generator/src/main/resources/dart-dio/enum.mustache index 4dc39373f68..697f368e373 100644 --- a/modules/openapi-generator/src/main/resources/dart-dio/enum.mustache +++ b/modules/openapi-generator/src/main/resources/dart-dio/enum.mustache @@ -9,14 +9,14 @@ class {{classname}} extends EnumClass { {{#allowableValues}} {{#enumVars}} {{#description}} - /// {{description}} + /// {{{description}}} {{/description}} @BuiltValueEnumConst({{#isInteger}}wireNumber: {{{value}}}{{/isInteger}}{{^isInteger}}wireName: {{{value}}}{{/isInteger}}) static const {{classname}} {{name}} = _${{name}}; {{/enumVars}} {{/allowableValues}} - static Serializer<{{classname}}> get serializer => _${{classVarName}}Serializer; + static Serializer<{{classname}}> get serializer => _${{#lambda.camelcase}}{{{classname}}}{{/lambda.camelcase}}Serializer; const {{classname}}._(String name): super(name); diff --git a/modules/openapi-generator/src/main/resources/dart-dio/enum_inline.mustache b/modules/openapi-generator/src/main/resources/dart-dio/enum_inline.mustache index c212e078f92..4de0416b23a 100644 --- a/modules/openapi-generator/src/main/resources/dart-dio/enum_inline.mustache +++ b/modules/openapi-generator/src/main/resources/dart-dio/enum_inline.mustache @@ -3,17 +3,17 @@ class {{classname}}{{nameInCamelCase}} extends EnumClass { {{#allowableValues}} {{#enumVars}} {{#description}} - /// {{description}} + /// {{{description}}} {{/description}} @BuiltValueEnumConst({{#isInteger}}wireNumber: {{{value}}}{{/isInteger}}{{^isInteger}}wireName: {{{value}}}{{/isInteger}}) - static const {{classname}}{{nameInCamelCase}} {{name}} = _${{name}}; + static const {{classname}}{{nameInCamelCase}} {{name}} = _${{#lambda.camelcase}}{{classname}}{{nameInCamelCase}}{{/lambda.camelcase}}_{{name}}; {{/enumVars}} {{/allowableValues}} - static Serializer<{{classname}}{{nameInCamelCase}}> get serializer => _${{classVarName}}{{nameInCamelCase}}Serializer; + static Serializer<{{classname}}{{nameInCamelCase}}> get serializer => _${{#lambda.camelcase}}{{classname}}{{nameInCamelCase}}{{/lambda.camelcase}}Serializer; const {{classname}}{{nameInCamelCase}}._(String name): super(name); - static BuiltSet<{{classname}}{{nameInCamelCase}}> get values => _${{classVarName}}{{nameInCamelCase}}Values; - static {{classname}}{{nameInCamelCase}} valueOf(String name) => _${{classVarName}}{{nameInCamelCase}}ValueOf(name); + static BuiltSet<{{classname}}{{nameInCamelCase}}> get values => _${{#lambda.camelcase}}{{classname}}{{nameInCamelCase}}{{/lambda.camelcase}}Values; + static {{classname}}{{nameInCamelCase}} valueOf(String name) => _${{#lambda.camelcase}}{{classname}}{{nameInCamelCase}}{{/lambda.camelcase}}ValueOf(name); } \ No newline at end of file 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 700b6578821..b438311adcb 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 @@ -43,13 +43,13 @@ class OrderStatus extends EnumClass { /// Order Status @BuiltValueEnumConst(wireName: 'placed') - static const OrderStatus placed = _$placed; + static const OrderStatus placed = _$orderStatus_placed; /// Order Status @BuiltValueEnumConst(wireName: 'approved') - static const OrderStatus approved = _$approved; + static const OrderStatus approved = _$orderStatus_approved; /// Order Status @BuiltValueEnumConst(wireName: 'delivered') - static const OrderStatus delivered = _$delivered; + static const OrderStatus delivered = _$orderStatus_delivered; static Serializer get serializer => _$orderStatusSerializer; 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 cbd2317378f..19458b2db21 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 @@ -45,13 +45,13 @@ class PetStatus extends EnumClass { /// pet status in the store @BuiltValueEnumConst(wireName: 'available') - static const PetStatus available = _$available; + static const PetStatus available = _$petStatus_available; /// pet status in the store @BuiltValueEnumConst(wireName: 'pending') - static const PetStatus pending = _$pending; + static const PetStatus pending = _$petStatus_pending; /// pet status in the store @BuiltValueEnumConst(wireName: 'sold') - static const PetStatus sold = _$sold; + static const PetStatus sold = _$petStatus_sold; static Serializer get serializer => _$petStatusSerializer; 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 700b6578821..b438311adcb 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 @@ -43,13 +43,13 @@ class OrderStatus extends EnumClass { /// Order Status @BuiltValueEnumConst(wireName: 'placed') - static const OrderStatus placed = _$placed; + static const OrderStatus placed = _$orderStatus_placed; /// Order Status @BuiltValueEnumConst(wireName: 'approved') - static const OrderStatus approved = _$approved; + static const OrderStatus approved = _$orderStatus_approved; /// Order Status @BuiltValueEnumConst(wireName: 'delivered') - static const OrderStatus delivered = _$delivered; + static const OrderStatus delivered = _$orderStatus_delivered; static Serializer get serializer => _$orderStatusSerializer; 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 cbd2317378f..19458b2db21 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 @@ -45,13 +45,13 @@ class PetStatus extends EnumClass { /// pet status in the store @BuiltValueEnumConst(wireName: 'available') - static const PetStatus available = _$available; + static const PetStatus available = _$petStatus_available; /// pet status in the store @BuiltValueEnumConst(wireName: 'pending') - static const PetStatus pending = _$pending; + static const PetStatus pending = _$petStatus_pending; /// pet status in the store @BuiltValueEnumConst(wireName: 'sold') - static const PetStatus sold = _$sold; + static const PetStatus sold = _$petStatus_sold; static Serializer get serializer => _$petStatusSerializer; 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 b5712fd623e..48064167ea8 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 @@ -27,9 +27,9 @@ abstract class EnumArrays implements Built { class EnumArraysJustSymbol extends EnumClass { @BuiltValueEnumConst(wireName: '>=') - static const EnumArraysJustSymbol >= = _$>=; + static const EnumArraysJustSymbol >= = _$enumArraysJustSymbol_>=; @BuiltValueEnumConst(wireName: '$') - static const EnumArraysJustSymbol $ = _$$; + static const EnumArraysJustSymbol $ = _$enumArraysJustSymbol_$; static Serializer get serializer => _$enumArraysJustSymbolSerializer; @@ -43,9 +43,9 @@ class EnumArraysJustSymbol extends EnumClass { class EnumArraysArrayEnum extends EnumClass { @BuiltValueEnumConst(wireName: 'fish') - static const EnumArraysArrayEnum fish = _$fish; + static const EnumArraysArrayEnum fish = _$enumArraysArrayEnum_fish; @BuiltValueEnumConst(wireName: 'crab') - static const EnumArraysArrayEnum crab = _$crab; + static const EnumArraysArrayEnum crab = _$enumArraysArrayEnum_crab; static Serializer get serializer => _$enumArraysArrayEnumSerializer; 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 f36d8312e72..0788d1778b6 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 @@ -61,11 +61,11 @@ abstract class EnumTest implements Built { class EnumTestEnumString extends EnumClass { @BuiltValueEnumConst(wireName: 'UPPER') - static const EnumTestEnumString uPPER = _$uPPER; + static const EnumTestEnumString uPPER = _$enumTestEnumString_uPPER; @BuiltValueEnumConst(wireName: 'lower') - static const EnumTestEnumString lower = _$lower; + static const EnumTestEnumString lower = _$enumTestEnumString_lower; @BuiltValueEnumConst(wireName: '') - static const EnumTestEnumString empty = _$empty; + static const EnumTestEnumString empty = _$enumTestEnumString_empty; static Serializer get serializer => _$enumTestEnumStringSerializer; @@ -79,11 +79,11 @@ class EnumTestEnumString extends EnumClass { class EnumTestEnumStringRequired extends EnumClass { @BuiltValueEnumConst(wireName: 'UPPER') - static const EnumTestEnumStringRequired uPPER = _$uPPER; + static const EnumTestEnumStringRequired uPPER = _$enumTestEnumStringRequired_uPPER; @BuiltValueEnumConst(wireName: 'lower') - static const EnumTestEnumStringRequired lower = _$lower; + static const EnumTestEnumStringRequired lower = _$enumTestEnumStringRequired_lower; @BuiltValueEnumConst(wireName: '') - static const EnumTestEnumStringRequired empty = _$empty; + static const EnumTestEnumStringRequired empty = _$enumTestEnumStringRequired_empty; static Serializer get serializer => _$enumTestEnumStringRequiredSerializer; @@ -97,9 +97,9 @@ class EnumTestEnumStringRequired extends EnumClass { class EnumTestEnumInteger extends EnumClass { @BuiltValueEnumConst(wireNumber: 1) - static const EnumTestEnumInteger number1 = _$number1; + static const EnumTestEnumInteger number1 = _$enumTestEnumInteger_number1; @BuiltValueEnumConst(wireNumber: -1) - static const EnumTestEnumInteger number1 = _$number1; + static const EnumTestEnumInteger number1 = _$enumTestEnumInteger_number1; static Serializer get serializer => _$enumTestEnumIntegerSerializer; @@ -113,9 +113,9 @@ class EnumTestEnumInteger extends EnumClass { class EnumTestEnumNumber extends EnumClass { @BuiltValueEnumConst(wireName: '1.1') - static const EnumTestEnumNumber 11_ = _$11_; + static const EnumTestEnumNumber 11_ = _$enumTestEnumNumber_11_; @BuiltValueEnumConst(wireName: '-1.2') - static const EnumTestEnumNumber 12_ = _$12_; + static const EnumTestEnumNumber 12_ = _$enumTestEnumNumber_12_; static Serializer get serializer => _$enumTestEnumNumberSerializer; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/inline_object2.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/inline_object2.dart index 6c90dd84455..936eed83abd 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/inline_object2.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/inline_object2.dart @@ -28,10 +28,10 @@ class InlineObject2EnumFormStringArray extends EnumClass { /// Form parameter enum test (string array) @BuiltValueEnumConst(wireName: '>') - static const InlineObject2EnumFormStringArray > = _$>; + static const InlineObject2EnumFormStringArray > = _$inlineObject2EnumFormStringArray_>; /// Form parameter enum test (string array) @BuiltValueEnumConst(wireName: '$') - static const InlineObject2EnumFormStringArray $ = _$$; + static const InlineObject2EnumFormStringArray $ = _$inlineObject2EnumFormStringArray_$; static Serializer get serializer => _$inlineObject2EnumFormStringArraySerializer; @@ -46,13 +46,13 @@ class InlineObject2EnumFormString extends EnumClass { /// Form parameter enum test (string) @BuiltValueEnumConst(wireName: '_abc') - static const InlineObject2EnumFormString abc = _$abc; + static const InlineObject2EnumFormString abc = _$inlineObject2EnumFormString_abc; /// Form parameter enum test (string) @BuiltValueEnumConst(wireName: '-efg') - static const InlineObject2EnumFormString efg = _$efg; + static const InlineObject2EnumFormString efg = _$inlineObject2EnumFormString_efg; /// Form parameter enum test (string) @BuiltValueEnumConst(wireName: '(xyz)') - static const InlineObject2EnumFormString (xyz) = _$(xyz); + static const InlineObject2EnumFormString (xyz) = _$inlineObject2EnumFormString_(xyz); static Serializer get serializer => _$inlineObject2EnumFormStringSerializer; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/map_test.dart index 8b41950dda7..3dd4226e2d6 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/map_test.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/map_test.dart @@ -34,9 +34,9 @@ abstract class MapTest implements Built { class MapTestMapOfEnumString extends EnumClass { @BuiltValueEnumConst(wireName: 'UPPER') - static const MapTestMapOfEnumString uPPER = _$uPPER; + static const MapTestMapOfEnumString uPPER = _$mapTestMapOfEnumString_uPPER; @BuiltValueEnumConst(wireName: 'lower') - static const MapTestMapOfEnumString lower = _$lower; + static const MapTestMapOfEnumString lower = _$mapTestMapOfEnumString_lower; static Serializer get serializer => _$mapTestMapOfEnumStringSerializer; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model200_response.dart index 1a3c2363b40..cd7af9bce9c 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model200_response.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model200_response.dart @@ -18,6 +18,6 @@ abstract class Model200Response implements Built get serializer => _$n200responseSerializer; + static Serializer get serializer => _$model200ResponseSerializer; } diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model_enum_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model_enum_class.dart index 824f65e967d..a43af990446 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model_enum_class.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model_enum_class.dart @@ -13,7 +13,7 @@ class ModelEnumClass extends EnumClass { @BuiltValueEnumConst(wireName: '(xyz)') static const ModelEnumClass (xyz) = _$(xyz); - static Serializer get serializer => _$enumClassSerializer; + static Serializer get serializer => _$modelEnumClassSerializer; const ModelEnumClass._(String name): super(name); diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model_return.dart index 679b5eef063..e3afe247cc1 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model_return.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/model_return.dart @@ -14,6 +14,6 @@ abstract class ModelReturn implements Built { ModelReturn._(); factory ModelReturn([updates(ModelReturnBuilder b)]) = _$ModelReturn; - static Serializer get serializer => _$return_Serializer; + static Serializer get serializer => _$modelReturnSerializer; } diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/order.dart index 700b6578821..b438311adcb 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/order.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/order.dart @@ -43,13 +43,13 @@ class OrderStatus extends EnumClass { /// Order Status @BuiltValueEnumConst(wireName: 'placed') - static const OrderStatus placed = _$placed; + static const OrderStatus placed = _$orderStatus_placed; /// Order Status @BuiltValueEnumConst(wireName: 'approved') - static const OrderStatus approved = _$approved; + static const OrderStatus approved = _$orderStatus_approved; /// Order Status @BuiltValueEnumConst(wireName: 'delivered') - static const OrderStatus delivered = _$delivered; + static const OrderStatus delivered = _$orderStatus_delivered; static Serializer get serializer => _$orderStatusSerializer; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/pet.dart index cbd2317378f..19458b2db21 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/pet.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/model/pet.dart @@ -45,13 +45,13 @@ class PetStatus extends EnumClass { /// pet status in the store @BuiltValueEnumConst(wireName: 'available') - static const PetStatus available = _$available; + static const PetStatus available = _$petStatus_available; /// pet status in the store @BuiltValueEnumConst(wireName: 'pending') - static const PetStatus pending = _$pending; + static const PetStatus pending = _$petStatus_pending; /// pet status in the store @BuiltValueEnumConst(wireName: 'sold') - static const PetStatus sold = _$sold; + static const PetStatus sold = _$petStatus_sold; static Serializer get serializer => _$petStatusSerializer;