EntityReferenceList<T>.from constructor
EntityReferenceList<T>.from (
- Object? o, {
- Type? type,
- String? typeName,
- EntityHandler<
T> ? entityHandler, - EntityProvider? entityProvider,
- EntityHandlerProvider? entityHandlerProvider,
- EntityCache? entityCache,
- EntitiesFetcher<
T> ? entitiesFetcher,
Creates an EntityReferenceList from o
trying to resolve it in the best way.
Implementation
factory EntityReferenceList.from(Object? o,
{Type? type,
String? typeName,
EntityHandler<T>? entityHandler,
EntityProvider? entityProvider,
EntityHandlerProvider? entityHandlerProvider,
EntityCache? entityCache,
EntitiesFetcher<T>? entitiesFetcher}) {
if (o == null) {
return EntityReferenceList<T>.asNull(
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entitiesFetcher: entitiesFetcher,
entityCache: entityCache,
checkGenericType: false)
._autoCast();
} else if (o is EntityReferenceList) {
return o.cast<T>()._autoCast();
} else if (o is List &&
o.every((Object? e) => e == null || e.isEntityIDType)) {
return EntityReferenceList<T>.fromIDs(o,
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entitiesFetcher: entitiesFetcher,
entityCache: entityCache,
checkGenericType: false)
._autoCast();
} else if (o is Map<String, dynamic>) {
return EntityReferenceList<T>.fromJson(o,
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entitiesFetcher: entitiesFetcher,
entityCache: entityCache);
} else if (o is List<T?>) {
return EntityReferenceList<T>.fromEntities(o,
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entitiesFetcher: entitiesFetcher,
entityCache: entityCache,
checkGenericType: false)
._autoCast();
} else if (o is T) {
return EntityReferenceList<T>.fromEntities(<T>[o as T],
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entitiesFetcher: entitiesFetcher,
entityCache: entityCache,
checkGenericType: false)
._autoCast();
}
throw StateError(
"`T`($T) and `o`($o) not compatible types. Can't resolve `EntityReferenceList`!");
}