@@ -110,10 +110,10 @@ class EnumGenerator extends ProtobufContainer {
110
110
out.println ('@$coreImportPrefix .Deprecated(\' This enum is deprecated\' )' );
111
111
}
112
112
out.addAnnotatedBlock (
113
- 'class $classname extends $protobufImportPrefix .ProtobufEnum {' ,
113
+ 'enum $classname implements $protobufImportPrefix .ProtobufEnum {' ,
114
114
'}\n ' , [
115
115
NamedLocation (
116
- name: classname, fieldPathSegment: fieldPath, start: 'class ' .length)
116
+ name: classname, fieldPathSegment: fieldPath, start: 'enum ' .length)
117
117
], () {
118
118
// -----------------------------------------------------------------
119
119
// Define enum types.
@@ -137,16 +137,14 @@ class EnumGenerator extends ProtobufContainer {
137
137
'@$coreImportPrefix .Deprecated(\' This enum value is deprecated\' )' );
138
138
}
139
139
140
- out.printlnAnnotated (
141
- 'static const $classname $name = '
142
- '$classname ._(${val .number }, $conditionalValName );' ,
143
- [
144
- NamedLocation (
145
- name: name,
146
- fieldPathSegment: fieldPathSegment,
147
- start: 'static const $classname ' .length)
148
- ]);
140
+ out.printlnAnnotated ('$name (${val .number }, $conditionalValName ),' , [
141
+ NamedLocation (
142
+ name: name, fieldPathSegment: fieldPathSegment, start: 0 )
143
+ ]);
144
+ out.println ();
149
145
}
146
+ out.println (';' );
147
+
150
148
if (_aliases.isNotEmpty) {
151
149
out.println ();
152
150
for (var i = 0 ; i < _aliases.length; i++ ) {
@@ -164,27 +162,29 @@ class EnumGenerator extends ProtobufContainer {
164
162
]);
165
163
}
166
164
}
167
- out.println ();
168
165
169
- out.println ('static const $coreImportPrefix .List<$classname > values ='
170
- ' <$classname > [' );
171
- for (final val in _canonicalValues) {
172
- final name = dartNames[val.name];
173
- out.println (' $name ,' );
174
- }
175
- out.println ('];' );
176
166
out.println ();
177
-
178
167
out.println (
179
168
'static final $coreImportPrefix .Map<$coreImportPrefix .int, $classname > _byValue ='
180
169
' $protobufImportPrefix .ProtobufEnum.initByValue(values);' );
181
170
out.println ('static $classname ? valueOf($coreImportPrefix .int value) =>'
182
171
' _byValue[value];' );
183
- out.println ();
184
172
173
+ out.println ();
174
+ out.println ('@$coreImportPrefix .override' );
175
+ out.println ('final $coreImportPrefix .int value;' );
176
+ out.println ();
177
+ out.println ('@$coreImportPrefix .override' );
178
+ out.println ('final $coreImportPrefix .String name;' );
179
+ out.println ();
180
+ out.println ('const $classname (this.value, this.name);' );
181
+ out.println ();
185
182
out.println (
186
- 'const $classname ._($coreImportPrefix .int v, $coreImportPrefix .String n) '
187
- ': super(v, n);' );
183
+ "/// Returns this enum's [name] or the [value] if names are not"
184
+ ' represented.' );
185
+ out.println ('@$coreImportPrefix .override' );
186
+ out.println ("$coreImportPrefix .String toString() => name == '' ? "
187
+ 'value.toString() : name;' );
188
188
});
189
189
}
190
190
0 commit comments