// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. part of '_json_serializable_test_input.dart'; @ShouldGenerate(r''' GenericClass _$GenericClassFromJson( Map json) { return GenericClass() ..fieldObject = json['fieldObject'] == null ? null : _dataFromJson(json['fieldObject']) ..fieldDynamic = json['fieldDynamic'] == null ? null : _dataFromJson(json['fieldDynamic']) ..fieldInt = json['fieldInt'] == null ? null : _dataFromJson(json['fieldInt']) ..fieldT = json['fieldT'] == null ? null : _dataFromJson(json['fieldT']) ..fieldS = json['fieldS'] == null ? null : _dataFromJson(json['fieldS']); } Map _$GenericClassToJson( GenericClass instance) => { 'fieldObject': instance.fieldObject == null ? null : _dataToJson(instance.fieldObject), 'fieldDynamic': instance.fieldDynamic == null ? null : _dataToJson(instance.fieldDynamic), 'fieldInt': instance.fieldInt == null ? null : _dataToJson(instance.fieldInt), 'fieldT': instance.fieldT == null ? null : _dataToJson(instance.fieldT), 'fieldS': instance.fieldS == null ? null : _dataToJson(instance.fieldS) }; ''', expectedWrappedOutput: r''' GenericClass _$GenericClassFromJson( Map json) { return GenericClass() ..fieldObject = json['fieldObject'] == null ? null : _dataFromJson(json['fieldObject']) ..fieldDynamic = json['fieldDynamic'] == null ? null : _dataFromJson(json['fieldDynamic']) ..fieldInt = json['fieldInt'] == null ? null : _dataFromJson(json['fieldInt']) ..fieldT = json['fieldT'] == null ? null : _dataFromJson(json['fieldT']) ..fieldS = json['fieldS'] == null ? null : _dataFromJson(json['fieldS']); } Map _$GenericClassToJson( GenericClass instance) => _$GenericClassJsonMapWrapper(instance); class _$GenericClassJsonMapWrapper extends $JsonMapWrapper { final GenericClass _v; _$GenericClassJsonMapWrapper(this._v); @override Iterable get keys => const ['fieldObject', 'fieldDynamic', 'fieldInt', 'fieldT', 'fieldS']; @override dynamic operator [](Object key) { if (key is String) { switch (key) { case 'fieldObject': return _v.fieldObject == null ? null : _dataToJson(_v.fieldObject); case 'fieldDynamic': return _v.fieldDynamic == null ? null : _dataToJson(_v.fieldDynamic); case 'fieldInt': return _v.fieldInt == null ? null : _dataToJson(_v.fieldInt); case 'fieldT': return _v.fieldT == null ? null : _dataToJson(_v.fieldT); case 'fieldS': return _v.fieldS == null ? null : _dataToJson(_v.fieldS); } } return null; } } ''') @JsonSerializable() class GenericClass { @JsonKey(fromJson: _dataFromJson, toJson: _dataToJson) Object fieldObject; @JsonKey(fromJson: _dataFromJson, toJson: _dataToJson) dynamic fieldDynamic; @JsonKey(fromJson: _dataFromJson, toJson: _dataToJson) int fieldInt; @JsonKey(fromJson: _dataFromJson, toJson: _dataToJson) T fieldT; @JsonKey(fromJson: _dataFromJson, toJson: _dataToJson) S fieldS; GenericClass(); } T _dataFromJson(Object input) => null; Object _dataToJson(T input) => null;