getInstance method
T
getInstance(
{ - String? qualifier,
})
override
Implementation
@override
T getInstance({String? qualifier}) {
qualifier ??= "default";
// if not singleton, always create new instance
if (!_singletons.contains(qualifier)) {
if (kDebugMode) {
print("New instance of $T with \"$qualifier\" qualifier");
}
final instance = _builders[qualifier]?.call();
if (instance == null) {
throw Exception("No builder for $T with \"$qualifier\" qualifier");
} else {
if (instance is Initializable) {
instance.initialize();
}
return instance;
}
}
T? instance = _instances[qualifier];
if (instance != null) {
return instance;
} else {
T? provided = _builders[qualifier]?.call();
if (provided == null) {
throw Exception("No builder for $T with \"$qualifier\" qualifier");
} else if (provided is Initializable) {
provided.initialize();
}
_instances[qualifier] = provided;
if (kDebugMode) {
print("Created $T with \"$qualifier\" qualifier");
}
return provided;
}
}