toEntityReference method

EntityReference<T> toEntityReference(
  1. Object? o, {
  2. Type? type,
  3. String? typeName,
  4. EntityHandler<T>? entityHandler,
  5. EntityProvider? entityProvider,
  6. EntityHandlerProvider? entityHandlerProvider,
  7. EntityFetcher<T>? entityFetcher,
  8. EntityCache? entityCache,
})

Implementation

EntityReference<T> toEntityReference(Object? o,
    {Type? type,
    String? typeName,
    EntityHandler<T>? entityHandler,
    EntityProvider? entityProvider,
    EntityHandlerProvider? entityHandlerProvider,
    EntityFetcher<T>? entityFetcher,
    EntityCache? entityCache}) {
  if (isEntityReferenceType) {
    var entityType = arguments0;

    throw StateError(
        "This `TypeInfo` is an `EntityReference` type! `toEntityReference` should be called in the type argument#0 of this `TypeInfo`: $entityType");
  }

  EntityReference<E> castCall<E>() {
    EntityHandler<E>? oEntityHandler;
    if (entityHandler != null) {
      oEntityHandler = entityHandler is EntityHandler<E>
          ? (entityHandler as EntityHandler<E>)
          : entityHandler.getEntityHandler<E>(type: type);
    }

    return _toEntityReferenceImpl<E>(
        o,
        type,
        typeName,
        oEntityHandler,
        entityProvider,
        entityHandlerProvider,
        entityFetcher as EntityFetcher<E>?,
        entityCache);
  }

  return callCasted<EntityReference>(castCall) as EntityReference<T>;
}