getOrCreateSharedObject<T extends ReferenceableType> static method
T
getOrCreateSharedObject<T extends ReferenceableType>(
Returns a T
ReferenceableType with id
, or creates with ifAbsent
function.
Implementation
static T getOrCreateSharedObject<T extends ReferenceableType>(String id,
{required T Function(String id) ifAbsent}) {
var t = T;
var instances = (_typesInstances[t] ??= <String, WeakReference<T>>{})
as Map<String, WeakReference<T>>;
var o = instances[id]?.target;
if (o == null) {
o = ifAbsent(id);
instances[id] = WeakReference(o);
}
return o;
}