From 10c07a31eb734d41136916a4e589ff15761295b6 Mon Sep 17 00:00:00 2001 From: SimonIT Date: Sat, 8 Aug 2020 16:10:30 +0200 Subject: [PATCH 1/3] Provide getter `values` for all enum values --- .../src/main/resources/dart2/enum.mustache | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/dart2/enum.mustache b/modules/openapi-generator/src/main/resources/dart2/enum.mustache index bdd82a161437..cfda923660f9 100644 --- a/modules/openapi-generator/src/main/resources/dart2/enum.mustache +++ b/modules/openapi-generator/src/main/resources/dart2/enum.mustache @@ -12,7 +12,15 @@ class {{classname}} { static const {{classname}} {{{name}}} = {{classname}}._internal({{value}}); {{/enumVars}} {{/allowableValues}} - + + static List<{{classname}}> get values => const [ + {{#allowableValues}} + {{#enumVars}} + {{{name}}}, + {{/enumVars}} + {{/allowableValues}} + ]; + {{dataType}} toJson () { return value; } @@ -25,7 +33,7 @@ class {{classname}} { static {{classname}} fromJson({{dataType}} value) { return {{classname}}TypeTransformer().decode(value); } - + static List<{{classname}}> listFromJson(List json) { return json == null ? List<{{classname}}>() From 788bc2ac9d5985a47de191d0dd11de60d052666d Mon Sep 17 00:00:00 2001 From: SimonIT Date: Sat, 8 Aug 2020 23:06:48 +0200 Subject: [PATCH 2/3] Add values getter also to inline enum --- .../src/main/resources/dart2/enum_inline.mustache | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/openapi-generator/src/main/resources/dart2/enum_inline.mustache b/modules/openapi-generator/src/main/resources/dart2/enum_inline.mustache index 5ecc2b1a6ac5..dc334dface51 100644 --- a/modules/openapi-generator/src/main/resources/dart2/enum_inline.mustache +++ b/modules/openapi-generator/src/main/resources/dart2/enum_inline.mustache @@ -13,6 +13,14 @@ class {{classname}}{{enumName}} { {{/enumVars}} {{/allowableValues}} + static List<{{classname}}{{enumName}}> get values => const [ + {{#allowableValues}} + {{#enumVars}} + {{{name}}}, + {{/enumVars}} + {{/allowableValues}} + ]; + {{{dataType}}} toJson () { return value; } From 5ff9477e3beef5dde1352b2c5ba9c25aba475448 Mon Sep 17 00:00:00 2001 From: sbu-WBT Date: Sun, 9 Aug 2020 00:09:31 +0200 Subject: [PATCH 3/3] Generate samples --- .../petstore/dart2/petstore_client_lib/lib/model/order.dart | 6 ++++++ .../petstore/dart2/petstore_client_lib/lib/model/pet.dart | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/samples/client/petstore/dart2/petstore_client_lib/lib/model/order.dart b/samples/client/petstore/dart2/petstore_client_lib/lib/model/order.dart index 821b59586aa1..a5edbe07bc39 100644 --- a/samples/client/petstore/dart2/petstore_client_lib/lib/model/order.dart +++ b/samples/client/petstore/dart2/petstore_client_lib/lib/model/order.dart @@ -93,6 +93,12 @@ class OrderStatusEnum { /// Order Status static const OrderStatusEnum delivered_ = OrderStatusEnum._internal("delivered"); + static List get values => const [ + placed_, + approved_, + delivered_, + ]; + String toJson () { return value; } 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 0999f9f638ec..b6ba84763567 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 @@ -97,6 +97,12 @@ class PetStatusEnum { /// pet status in the store static const PetStatusEnum sold_ = PetStatusEnum._internal("sold"); + static List get values => const [ + available_, + pending_, + sold_, + ]; + String toJson () { return value; }