forked from loafle/openapi-generator-original
[dart-dio] Adds support for generating inline enums (#5668)
* [dart-dio] Adds support for generating inline enums Previously these were generated as strings if declared inline in the spec. * Adds more detailed comment about inline enums
This commit is contained in:
@@ -11,7 +11,7 @@ abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builde
|
||||
@nullable
|
||||
{{/isNullable}}
|
||||
@BuiltValueField(wireName: r'{{baseName}}')
|
||||
{{{dataType}}} get {{name}};
|
||||
{{#isEnum}}{{classname}}{{{nameInCamelCase}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}} get {{name}};
|
||||
{{#allowableValues}}
|
||||
{{#min}} // range from {{min}} to {{max}}{{/min}}//{{^min}}enum {{name}}Enum { {{#values}} {{.}}, {{/values}} };{{/min}}
|
||||
{{/allowableValues}}
|
||||
@@ -22,5 +22,17 @@ abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builde
|
||||
|
||||
factory {{classname}}([updates({{classname}}Builder b)]) = _${{classname}};
|
||||
static Serializer<{{classname}}> get serializer => _${{classVarName}}Serializer;
|
||||
|
||||
}
|
||||
{{!
|
||||
Generate an enum for any variables that are declared as inline enums
|
||||
isEnum is only true for inline variables that are enums.
|
||||
If an enum is declared as a definition, isEnum is false and the enum is generated from the
|
||||
enum.mustache template.
|
||||
}}
|
||||
{{#vars}}
|
||||
{{#isEnum}}
|
||||
|
||||
{{>enum_inline}}
|
||||
|
||||
{{/isEnum}}
|
||||
{{/vars}}
|
||||
@@ -0,0 +1,19 @@
|
||||
class {{classname}}{{nameInCamelCase}} extends EnumClass {
|
||||
|
||||
{{#allowableValues}}
|
||||
{{#enumVars}}
|
||||
{{#description}}
|
||||
/// {{description}}
|
||||
{{/description}}
|
||||
@BuiltValueEnumConst(wireName: {{{value}}})
|
||||
static const {{classname}}{{nameInCamelCase}} {{name}} = _${{name}};
|
||||
{{/enumVars}}
|
||||
{{/allowableValues}}
|
||||
|
||||
static Serializer<{{classname}}{{nameInCamelCase}}> get serializer => _${{classVarName}}{{nameInCamelCase}}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);
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
5.0.0-SNAPSHOT
|
||||
5.0.0-SNAPSHOT
|
||||
|
||||
@@ -23,6 +23,5 @@ abstract class ApiResponse implements Built<ApiResponse, ApiResponseBuilder> {
|
||||
|
||||
factory ApiResponse([updates(ApiResponseBuilder b)]) = _$ApiResponse;
|
||||
static Serializer<ApiResponse> get serializer => _$apiResponseSerializer;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,5 @@ abstract class Category implements Built<Category, CategoryBuilder> {
|
||||
|
||||
factory Category([updates(CategoryBuilder b)]) = _$Category;
|
||||
static Serializer<Category> get serializer => _$categorySerializer;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ abstract class Order implements Built<Order, OrderBuilder> {
|
||||
/* Order Status */
|
||||
@nullable
|
||||
@BuiltValueField(wireName: r'status')
|
||||
String get status;
|
||||
OrderStatus get status;
|
||||
//enum statusEnum { placed, approved, delivered, };
|
||||
|
||||
@nullable
|
||||
@@ -36,6 +36,26 @@ abstract class Order implements Built<Order, OrderBuilder> {
|
||||
|
||||
factory Order([updates(OrderBuilder b)]) = _$Order;
|
||||
static Serializer<Order> get serializer => _$orderSerializer;
|
||||
|
||||
}
|
||||
|
||||
class OrderStatus extends EnumClass {
|
||||
|
||||
/// Order Status
|
||||
@BuiltValueEnumConst(wireName: "placed")
|
||||
static const OrderStatus placed = _$placed;
|
||||
/// Order Status
|
||||
@BuiltValueEnumConst(wireName: "approved")
|
||||
static const OrderStatus approved = _$approved;
|
||||
/// Order Status
|
||||
@BuiltValueEnumConst(wireName: "delivered")
|
||||
static const OrderStatus delivered = _$delivered;
|
||||
|
||||
static Serializer<OrderStatus> get serializer => _$orderStatusSerializer;
|
||||
|
||||
const OrderStatus._(String name): super(name);
|
||||
|
||||
static BuiltSet<OrderStatus> get values => _$orderStatusValues;
|
||||
static OrderStatus valueOf(String name) => _$orderStatusValueOf(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ abstract class Pet implements Built<Pet, PetBuilder> {
|
||||
/* pet status in the store */
|
||||
@nullable
|
||||
@BuiltValueField(wireName: r'status')
|
||||
String get status;
|
||||
PetStatus get status;
|
||||
//enum statusEnum { available, pending, sold, };
|
||||
|
||||
// Boilerplate code needed to wire-up generated code
|
||||
@@ -39,6 +39,26 @@ abstract class Pet implements Built<Pet, PetBuilder> {
|
||||
|
||||
factory Pet([updates(PetBuilder b)]) = _$Pet;
|
||||
static Serializer<Pet> get serializer => _$petSerializer;
|
||||
|
||||
}
|
||||
|
||||
class PetStatus extends EnumClass {
|
||||
|
||||
/// pet status in the store
|
||||
@BuiltValueEnumConst(wireName: "available")
|
||||
static const PetStatus available = _$available;
|
||||
/// pet status in the store
|
||||
@BuiltValueEnumConst(wireName: "pending")
|
||||
static const PetStatus pending = _$pending;
|
||||
/// pet status in the store
|
||||
@BuiltValueEnumConst(wireName: "sold")
|
||||
static const PetStatus sold = _$sold;
|
||||
|
||||
static Serializer<PetStatus> get serializer => _$petStatusSerializer;
|
||||
|
||||
const PetStatus._(String name): super(name);
|
||||
|
||||
static BuiltSet<PetStatus> get values => _$petStatusValues;
|
||||
static PetStatus valueOf(String name) => _$petStatusValueOf(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -19,6 +19,5 @@ abstract class Tag implements Built<Tag, TagBuilder> {
|
||||
|
||||
factory Tag([updates(TagBuilder b)]) = _$Tag;
|
||||
static Serializer<Tag> get serializer => _$tagSerializer;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,5 @@ abstract class User implements Built<User, UserBuilder> {
|
||||
|
||||
factory User([updates(UserBuilder b)]) = _$User;
|
||||
static Serializer<User> get serializer => _$userSerializer;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user