upgraded code for nullsafety

This commit is contained in:
Sergey Penkovsky
2021-03-27 19:48:03 +03:00
parent 8baad94b8f
commit 12d877333a
7 changed files with 22 additions and 19 deletions

View File

@@ -7,5 +7,5 @@ abstract class Resolver<T> {
* Разрешает зависимость типа [T]
* @return - возвращает объект типа [T]
*/
T resolve();
T? resolve();
}

View File

@@ -6,11 +6,13 @@ import 'package:dart_di/resolvers/value_resolver.dart';
class ResolvingContext<T> extends Resolver {
/// Корневой резолвер
Resolver<T> get resolver => _resolver;
Resolver<T> get resolver {
return _resolver as Resolver<T>;
}
DiContainer _container;
Resolver _resolver;
late Resolver _resolver;
ResolvingContext(this._container);
@@ -21,7 +23,7 @@ class ResolvingContext<T> extends Resolver {
@override
T resolve() {
_verify();
return _resolver?.resolve();
return _resolver.resolve();
}
/**
@@ -38,7 +40,7 @@ class ResolvingContext<T> extends Resolver {
* Создать резолвер значения
*/
ResolvingContext<T> toValue<TImpl extends T>(T value) {
Resolver<TImpl> resolver = ValueResolver(value);
Resolver<TImpl> resolver = ValueResolver(value as TImpl);
return toResolver<TImpl>(resolver);
}

View File

@@ -2,12 +2,12 @@ import 'package:dart_di/resolvers/resolver.dart';
class SingletonResolver<T> extends Resolver<T> {
Resolver<T> _decoratedResolver;
T _value = null;
T? _value = null;
SingletonResolver(this._decoratedResolver);
@override
T resolve() {
T? resolve() {
if (_value == null) {
_value = _decoratedResolver.resolve();
}