@@ -418,10 +418,8 @@ void $toJsonMapHelperName(String key, dynamic value) {
418
418
{String accessOverride}) {
419
419
accessOverride ?? = field.name;
420
420
421
- _TypeHelperContext context = _getHelperContext (field);
422
-
423
421
try {
424
- return context .serialize (
422
+ return _getHelperContext (field) .serialize (
425
423
field.type, accessOverride, _nullable (field, classIncludeNullable));
426
424
} on UnsupportedTypeError catch (e) {
427
425
throw _createInvalidGenerationError ('toJson' , field, e);
@@ -434,64 +432,46 @@ void $toJsonMapHelperName(String key, dynamic value) {
434
432
435
433
var targetType = ctorParam? .type ?? field.type;
436
434
437
- _TypeHelperContext context = _getHelperContext (field);
438
-
439
435
try {
440
- return context .deserialize (
436
+ return _getHelperContext (field) .deserialize (
441
437
targetType, 'json[$jsonKey ]' , _nullable (field, classSupportNullable));
442
438
} on UnsupportedTypeError catch (e) {
443
439
throw _createInvalidGenerationError ('fromJson' , field, e);
444
440
}
445
441
}
446
442
447
- _TypeHelperContext _getHelperContext (FieldElement field) {
448
- _TypeHelperContext helperContext;
449
-
450
- /// [expression] may be just the name of the field or it may an expression
451
- /// representing the serialization of a value.
452
- String serialize (DartType targetType, String expression, bool nullable) =>
453
- _allHelpers
454
- .map ((h) =>
455
- h.serialize (targetType, expression, nullable, helperContext))
456
- .firstWhere ((r) => r != null ,
457
- orElse: () => throw new UnsupportedTypeError (
458
- targetType, expression, _notSupportedWithTypeHelpersMsg));
459
-
460
- String deserialize (DartType targetType, String expression, bool nullable) =>
461
- _allHelpers
462
- .map ((th) =>
463
- th.deserialize (targetType, expression, nullable, helperContext))
464
- .firstWhere ((r) => r != null ,
465
- orElse: () => throw new UnsupportedTypeError (
466
- targetType, expression, _notSupportedWithTypeHelpersMsg));
467
-
468
- helperContext = new _TypeHelperContext (
469
- serialize, deserialize, useWrappers, field.metadata);
470
- return helperContext;
471
- }
443
+ _TypeHelperContext _getHelperContext (FieldElement field) =>
444
+ new _TypeHelperContext (this , field.metadata);
472
445
}
473
446
474
- typedef String _TypeHelperGenerator (
475
- DartType fieldType, String expression, bool nullable);
476
-
477
447
class _TypeHelperContext implements SerializeContext , DeserializeContext {
478
- final _TypeHelperGenerator _serialize, _deserialize ;
448
+ final JsonSerializableGenerator _generator ;
479
449
480
450
@override
481
- final bool useWrappers;
451
+ bool get useWrappers => _generator. useWrappers;
482
452
453
+ @override
483
454
List <ElementAnnotation > metadata;
484
455
485
- _TypeHelperContext (
486
- this ._serialize, this ._deserialize, this .useWrappers, this .metadata);
456
+ _TypeHelperContext (this ._generator, this .metadata);
487
457
458
+ /// [expression] may be just the name of the field or it may an expression
459
+ /// representing the serialization of a value.
488
460
@override
489
- String serialize (DartType fieldType, String expression, bool nullable) =>
490
- _serialize (fieldType, expression, nullable);
461
+ String serialize (DartType targetType, String expression, bool nullable) =>
462
+ _generator._allHelpers
463
+ .map ((h) => h.serialize (targetType, expression, nullable, this ))
464
+ .firstWhere ((r) => r != null ,
465
+ orElse: () => throw new UnsupportedTypeError (
466
+ targetType, expression, _notSupportedWithTypeHelpersMsg));
491
467
492
468
@override
493
- String deserialize (DartType fieldType, String expression, bool nullable) =>
494
- _deserialize (fieldType, expression, nullable);
469
+ String deserialize (DartType targetType, String expression, bool nullable) =>
470
+ _generator._allHelpers
471
+ .map ((th) => th.deserialize (targetType, expression, nullable, this ))
472
+ .firstWhere ((r) => r != null ,
473
+ orElse: () => throw new UnsupportedTypeError (
474
+ targetType, expression, _notSupportedWithTypeHelpersMsg));
495
475
}
496
476
497
477
String _safeNameAccess (FieldElement field) {
0 commit comments