@@ -11,7 +11,8 @@ import '../util/case_util.dart';
11
11
import '../util/type_checker.dart' ;
12
12
13
13
class ObjectModelWriter {
14
- static const autoGeneratedWarning = '// GENERATED CODE - DO NOT MODIFY BY HAND' ;
14
+ static const autoGeneratedWarning =
15
+ '// GENERATED CODE - DO NOT MODIFY BY HAND' ;
15
16
final PubspecConfig pubspecConfig;
16
17
final ObjectModel jsonModel;
17
18
final List <Field > extendsFields;
@@ -28,8 +29,10 @@ class ObjectModelWriter {
28
29
final sb = StringBuffer ()
29
30
..writeln (autoGeneratedWarning)
30
31
..writeln ();
31
- final imports = < String > {}..add ("import 'package:json_annotation/json_annotation.dart';" );
32
- for (final element in (jsonModel.extraImports ?? pubspecConfig.extraImports)) {
32
+ final imports = < String > {}
33
+ ..add ("import 'package:json_annotation/json_annotation.dart';" );
34
+ for (final element
35
+ in (jsonModel.extraImports ?? pubspecConfig.extraImports)) {
33
36
imports.add ('import \' $element \' ;' );
34
37
}
35
38
final extendsModel = jsonModel.extendsModel;
@@ -42,7 +45,8 @@ class ObjectModelWriter {
42
45
43
46
for (final field in jsonModel.fields) {
44
47
final type = field.type;
45
- if (! TypeChecker .isKnownDartType (type.name) && type.name != jsonModel.name) {
48
+ if (! TypeChecker .isKnownDartType (type.name) &&
49
+ type.name != jsonModel.name) {
46
50
imports.addAll (_getImportsFromPath (type.name));
47
51
}
48
52
if (type is MapType && ! TypeChecker .isKnownDartType (type.valueName)) {
@@ -73,7 +77,8 @@ class ObjectModelWriter {
73
77
} else {
74
78
sb.writeln ('@JsonSerializable()' );
75
79
}
76
- (jsonModel.extraAnnotations ?? pubspecConfig.extraAnnotations).forEach (sb.writeln);
80
+ (jsonModel.extraAnnotations ?? pubspecConfig.extraAnnotations)
81
+ .forEach (sb.writeln);
77
82
78
83
for (final converter in jsonModel.converters) {
79
84
sb.writeln ('@$converter ()' );
@@ -114,7 +119,8 @@ class ObjectModelWriter {
114
119
}
115
120
116
121
if (key.unknownEnumValue != null ) {
117
- sb.write (', unknownEnumValue: ${key .type .name }.${key .unknownEnumValue }' );
122
+ sb.write (
123
+ ', unknownEnumValue: ${key .type .name }.${key .unknownEnumValue }' );
118
124
}
119
125
120
126
final fieldModel = yamlConfig.getModelByName (key.type);
@@ -137,22 +143,29 @@ class ObjectModelWriter {
137
143
sb.writeln ('${_getKeyType (key )} ${key .name };' );
138
144
}
139
145
140
- final anyNonFinal = jsonModel.fields.any ((element) => element.nonFinal) || extendsFields.any ((element) => element.nonFinal);
146
+ final anyNonFinal = jsonModel.fields.any ((element) => element.nonFinal) ||
147
+ extendsFields.any ((element) => element.nonFinal);
141
148
sb
142
149
..writeln ()
143
150
..writeln (' ${anyNonFinal ? '' : 'const ' }${jsonModel .name }({' );
144
151
145
- for (final key in jsonModel.fields.where ((key) => (key.isRequired && ! key.hasDefaultValue))) {
152
+ for (final key in jsonModel.fields
153
+ .where ((key) => (key.isRequired && ! key.hasDefaultValue))) {
146
154
sb.writeln (' required this.${key .name }${_fillDefaulValue (key )},' );
147
155
}
148
- for (final key in extendsFields.where ((key) => (key.isRequired && ! key.hasDefaultValue))) {
149
- sb.writeln (' required ${_getKeyType (key )} ${key .name }${_fillDefaulValue (key )},' );
156
+ for (final key in extendsFields
157
+ .where ((key) => (key.isRequired && ! key.hasDefaultValue))) {
158
+ sb.writeln (
159
+ ' required ${_getKeyType (key )} ${key .name }${_fillDefaulValue (key )},' );
150
160
}
151
- for (final key in jsonModel.fields.where ((key) => ! (key.isRequired && ! key.hasDefaultValue))) {
161
+ for (final key in jsonModel.fields
162
+ .where ((key) => ! (key.isRequired && ! key.hasDefaultValue))) {
152
163
sb.writeln (' this.${key .name }${_fillDefaulValue (key )},' );
153
164
}
154
- for (final key in extendsFields.where ((key) => ! (key.isRequired && ! key.hasDefaultValue))) {
155
- sb.writeln (' ${_getKeyType (key )} ${key .name }${_fillDefaulValue (key )},' );
165
+ for (final key in extendsFields
166
+ .where ((key) => ! (key.isRequired && ! key.hasDefaultValue))) {
167
+ sb.writeln (
168
+ ' ${_getKeyType (key )} ${key .name }${_fillDefaulValue (key )},' );
156
169
}
157
170
if (extendsModel != null ) {
158
171
sb.writeln (' }) : super(' );
@@ -168,21 +181,25 @@ class ObjectModelWriter {
168
181
..writeln ();
169
182
}
170
183
if (jsonModel.generateForGenerics) {
171
- sb.writeln (' factory ${jsonModel .name }.fromJson(Object? json) => _\$ ${jsonModel .name }FromJson(json as Map<String, dynamic>); // ignore: avoid_as' );
184
+ sb.writeln (
185
+ ' factory ${jsonModel .name }.fromJson(Object? json) => _\$ ${jsonModel .name }FromJson(json as Map<String, dynamic>); // ignore: avoid_as' );
172
186
} else {
173
- sb.writeln (' factory ${jsonModel .name }.fromJson(Map<String, dynamic> json) => _\$ ${jsonModel .name }FromJson(json);' );
187
+ sb.writeln (
188
+ ' factory ${jsonModel .name }.fromJson(Map<String, dynamic> json) => _\$ ${jsonModel .name }FromJson(json);' );
174
189
}
175
190
sb.writeln ();
176
191
if (extendsModel != null ) {
177
192
sb.writeln (' @override' );
178
193
}
179
- sb.writeln (' Map<String, dynamic> toJson() => _\$ ${jsonModel .name }ToJson(this);' );
194
+ sb.writeln (
195
+ ' Map<String, dynamic> toJson() => _\$ ${jsonModel .name }ToJson(this);' );
180
196
181
197
if (jsonModel.staticCreate ?? pubspecConfig.staticCreate) {
182
198
sb
183
199
..writeln ()
184
200
..writeln (' // ignore: prefer_constructors_over_static_methods' )
185
- ..writeln (' static ${jsonModel .name } create(${jsonModel .generateForGenerics ? 'Object? json' : 'Map<String, dynamic> json' }) => ${jsonModel .name }.fromJson(json);' );
201
+ ..writeln (
202
+ ' static ${jsonModel .name } create(${jsonModel .generateForGenerics ? 'Object? json' : 'Map<String, dynamic> json' }) => ${jsonModel .name }.fromJson(json);' );
186
203
}
187
204
188
205
if (jsonModel.equalsAndHashCode ?? pubspecConfig.equalsHashCode) {
@@ -193,7 +210,8 @@ class ObjectModelWriter {
193
210
..writeln (' identical(this, other) ||' )
194
211
..writeln (' other is ${jsonModel .name } &&' )
195
212
..write (' runtimeType == other.runtimeType' );
196
- for (final field in jsonModel.fields.where ((field) => ! field.ignoreEquality)) {
213
+ for (final field
214
+ in jsonModel.fields.where ((field) => ! field.ignoreEquality)) {
197
215
sb.write (' &&\n ${field .name } == other.${field .name }' );
198
216
}
199
217
if (extendsModel != null ) {
@@ -205,7 +223,8 @@ class ObjectModelWriter {
205
223
..writeln (' @override' )
206
224
..writeln (' int get hashCode =>' );
207
225
var c = 0 ;
208
- for (final field in jsonModel.fields.where ((field) => ! field.ignoreEquality)) {
226
+ for (final field
227
+ in jsonModel.fields.where ((field) => ! field.ignoreEquality)) {
209
228
if (c++ > 0 ) sb.write (' ^\n ' );
210
229
sb.write (' ${field .name }.hashCode' );
211
230
}
@@ -246,7 +265,8 @@ class ObjectModelWriter {
246
265
}
247
266
248
267
String _getKeyType (Field key) {
249
- final nullableFlag = key.isRequired || key.type.name == 'dynamic' ? '' : '?' ;
268
+ final nullableFlag =
269
+ key.isRequired || key.type.name == 'dynamic' ? '' : '?' ;
250
270
final keyType = key.type;
251
271
if (keyType is ArrayType ) {
252
272
return 'List<${keyType .name }>$nullableFlag ' ;
@@ -286,7 +306,8 @@ class ObjectModelWriter {
286
306
if (path.endsWith ('.dart' )) {
287
307
imports.add ("import '$pathWithPackage ';" );
288
308
} else {
289
- imports.add ("import '$pathWithPackage /${reCaseFieldName .snakeCase }.dart';" );
309
+ imports.add (
310
+ "import '$pathWithPackage /${reCaseFieldName .snakeCase }.dart';" );
290
311
}
291
312
}
292
313
}
@@ -302,19 +323,25 @@ class ObjectModelWriter {
302
323
}
303
324
304
325
void createRetrofitMappers (StringBuffer sb) {
305
- final hasConstructorTearOffs = pubspecConfig.languageVersion? .isAtLeast (2 , 15 ) ?? false ;
326
+ final hasConstructorTearOffs =
327
+ pubspecConfig.languageVersion? .isAtLeast (2 , 15 ) ?? false ;
306
328
sb
307
329
..writeln ()
308
330
..writeln (hasConstructorTearOffs
309
331
? 'const deserialize${jsonModel .name } = ${jsonModel .name }.fromJson;'
310
332
: '${jsonModel .name } deserialize${jsonModel .name }(Map<String, dynamic> json) => ${jsonModel .name }.fromJson(json);' )
311
333
..writeln ()
312
- ..writeln ('Map<String, dynamic> serialize${jsonModel .name }(${jsonModel .name } object) => object.toJson();' )
334
+ ..writeln (
335
+ 'Map<String, dynamic> serialize${jsonModel .name }(${jsonModel .name } object) => object.toJson();' )
313
336
..writeln ()
314
- ..writeln ('List<${jsonModel .name }> deserialize${jsonModel .name }List(List<Map<String, dynamic>> jsonList)' )
315
- ..writeln (hasConstructorTearOffs ? ' => jsonList.map(${jsonModel .name }.fromJson).toList();' : ' => jsonList.map((json) => ${jsonModel .name }.fromJson(json)).toList();' )
337
+ ..writeln (
338
+ 'List<${jsonModel .name }> deserialize${jsonModel .name }List(List<Map<String, dynamic>> jsonList)' )
339
+ ..writeln (hasConstructorTearOffs
340
+ ? ' => jsonList.map(${jsonModel .name }.fromJson).toList();'
341
+ : ' => jsonList.map((json) => ${jsonModel .name }.fromJson(json)).toList();' )
316
342
..writeln ()
317
- ..writeln ('List<Map<String, dynamic>> serialize${jsonModel .name }List(List<${jsonModel .name }> objects)' )
343
+ ..writeln (
344
+ 'List<Map<String, dynamic>> serialize${jsonModel .name }List(List<${jsonModel .name }> objects)' )
318
345
..writeln (' => objects.map((object) => object.toJson()).toList();' );
319
346
}
320
347
}
0 commit comments