EntityReference<T>.from constructor
EntityReference<T>.from (
- Object? o, {
- Type? type,
- String? typeName,
- EntityHandler<
T> ? entityHandler, - EntityProvider? entityProvider,
- EntityHandlerProvider? entityHandlerProvider,
- EntityFetcher<
T> ? entityFetcher, - EntityCache? entityCache,
Creates an EntityReference from o
trying to resolve it in the best way.
Implementation
factory EntityReference.from(Object? o,
{Type? type,
String? typeName,
EntityHandler<T>? entityHandler,
EntityProvider? entityProvider,
EntityHandlerProvider? entityHandlerProvider,
EntityFetcher<T>? entityFetcher,
EntityCache? entityCache}) {
if (o == null) {
return EntityReference<T>.asNull(
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entityFetcher: entityFetcher,
entityCache: entityCache,
checkGenericType: false)
._autoCast();
} else if (o is EntityReference) {
return o.cast<T>()._autoCast();
} else if (o.isEntityIDType) {
return EntityReference<T>.fromID(o,
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entityFetcher: entityFetcher,
entityCache: entityCache,
checkGenericType: false)
._autoCast();
} else if (o is Map<String, dynamic>) {
return EntityReference<T>.fromJson(o,
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entityFetcher: entityFetcher,
entityCache: entityCache);
} else if (o is T) {
return EntityReference<T>.fromEntity(o as T,
type: type,
typeName: typeName,
entityHandler: entityHandler,
entityProvider: entityProvider,
entityFetcher: entityFetcher,
entityCache: entityCache,
checkGenericType: false)
._autoCast();
}
throw StateError(
"`T`($T) and `o`($o) not of the same type. Can't resolve `EntityReference`!");
}