// 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. // GENERATED CODE - DO NOT MODIFY BY HAND // ************************************************************************** // _NonNullableGenerator // ************************************************************************** // ignore_for_file: annotate_overrides, hash_and_equals import 'package:json_annotation/json_annotation.dart'; import 'json_converters.dart'; import 'kitchen_sink_interface.dart' as k; import 'simple_object.dart'; import 'strict_keys_object.dart'; part 'kitchen_sink.non_nullable.g.dart'; // NOTE: these methods are replaced in the `non_nullable` cases to return // non-null values. List _defaultList() => []; Set _defaultSet() => Set(); Map _defaultMap() => {}; SimpleObject _defaultSimpleObject() => SimpleObject(42); StrictKeysObject _defaultStrictKeysObject() => StrictKeysObject(10, 'cool'); k.KitchenSink testFactory( {int ctorValidatedNo42, Iterable iterable, Iterable dynamicIterable, Iterable objectIterable, Iterable intIterable, Iterable dateTimeIterable}) => KitchenSink( ctorValidatedNo42: ctorValidatedNo42, iterable: iterable, dynamicIterable: dynamicIterable, objectIterable: objectIterable, intIterable: intIterable, dateTimeIterable: dateTimeIterable); k.KitchenSink testFromJson(Map json) => KitchenSink.fromJson(json); @JsonSerializable(nullable: false, anyMap: true, generateToJsonFunction: false) class KitchenSink extends Object with _$KitchenSinkSerializerMixin implements k.KitchenSink { // To ensure static members are not considered for serialization. static const answer = 42; static final reason = 42; static int get understand => 42; // NOTE: exposing these as Iterable, but storing the values as List // to make the equality test work trivially. final Iterable _iterable; final Iterable _dynamicIterable; final Iterable _objectIterable; final Iterable _intIterable; final Iterable _dateTimeIterable; @JsonKey(name: 'no-42') final int ctorValidatedNo42; KitchenSink( {this.ctorValidatedNo42, Iterable iterable, Iterable dynamicIterable, Iterable objectIterable, Iterable intIterable, Iterable dateTimeIterable}) : _iterable = iterable?.toList() ?? _defaultList(), _dynamicIterable = dynamicIterable?.toList() ?? _defaultList(), _objectIterable = objectIterable?.toList() ?? _defaultList(), _intIterable = intIterable?.toList() ?? _defaultList(), _dateTimeIterable = dateTimeIterable?.toList() ?? _defaultList() { if (ctorValidatedNo42 == 42) { throw ArgumentError.value( 42, 'ctorValidatedNo42', 'The value `42` is not allowed.'); } } factory KitchenSink.fromJson(Map json) => _$KitchenSinkFromJson(json); @JsonKey(includeIfNull: false) DateTime dateTime = DateTime(1981, 6, 5); @JsonKey(includeIfNull: false) Iterable get iterable => _iterable; Iterable get dynamicIterable => _dynamicIterable; Iterable get objectIterable => _objectIterable; Iterable get intIterable => _intIterable; Set set = _defaultSet(); Set dynamicSet = _defaultSet(); Set objectSet = _defaultSet(); Set intSet = _defaultSet(); Set dateTimeSet = _defaultSet(); // Added a one-off annotation on a property (not a field) @JsonKey(name: 'datetime-iterable') Iterable get dateTimeIterable => _dateTimeIterable; List list = _defaultList(); List dynamicList = _defaultList(); List objectList = _defaultList(); List intList = _defaultList(); @JsonKey(includeIfNull: false) List dateTimeList = _defaultList(); Map map = _defaultMap(); Map stringStringMap = _defaultMap(); Map dynamicIntMap = _defaultMap(); Map objectDateTimeMap = _defaultMap(); @JsonKey(includeIfNull: false) List>>>> crazyComplex = _defaultList(); // Handle fields with names that collide with helper names @JsonKey(includeIfNull: false) Map val = _defaultMap(); bool writeNotNull; @JsonKey(name: r'$string') String string; SimpleObject simpleObject = _defaultSimpleObject(); StrictKeysObject strictKeysObject = _defaultStrictKeysObject(); int _validatedPropertyNo42; int get validatedPropertyNo42 => _validatedPropertyNo42; set validatedPropertyNo42(int value) { if (value == 42) { throw StateError('Cannot be 42!'); } _validatedPropertyNo42 = value; } bool operator ==(Object other) => k.sinkEquals(this, other); } @JsonSerializable(nullable: false, anyMap: true, generateToJsonFunction: false) // referencing a top-level field should work @durationConverter // referencing via a const constructor should work @BigIntStringConverter() @TrivialNumberConverter.instance @EpochDateTimeConverter() class JsonConverterTestClass extends Object with _$JsonConverterTestClassSerializerMixin { JsonConverterTestClass(); factory JsonConverterTestClass.fromJson(Map json) => _$JsonConverterTestClassFromJson(json); Duration duration; List durationList; BigInt bigInt; Map bigIntMap; TrivialNumber numberSilly; Set numberSillySet; DateTime dateTime = DateTime(1981, 6, 5); } @JsonSerializable(nullable: false, anyMap: true, generateToJsonFunction: false) @GenericConverter() class JsonConverterGeneric extends Object with _$JsonConverterGenericSerializerMixin { S item; List itemList; Map itemMap; JsonConverterGeneric(); factory JsonConverterGeneric.fromJson(Map json) => _$JsonConverterGenericFromJson(json); }