toEntityReferenceList method

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

Implementation

EntityReferenceList<T> toEntityReferenceList(Object? o,
    {Type? type,
    String? typeName,
    EntityHandler<T>? entityHandler,
    EntityProvider? entityProvider,
    EntityHandlerProvider? entityHandlerProvider,
    EntitiesFetcher<T>? entitiesFetcher,
    EntityFetcher<T>? entityFetcher,
    EntityCache? entityCache}) {
  if (isEntityReferenceListType) {
    var entityType = arguments0;

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

  if (entityFetcher != null && entitiesFetcher == null) {
    entitiesFetcher = (ids, type) => ids
        // ignore: discarded_futures
        .map((id) => id == null ? null : entityFetcher(id, type))
        .toList()
        // ignore: discarded_futures
        .resolveAll();
  }

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

    return _toEntityReferenceListImpl<E>(
        o,
        type,
        typeName,
        oEntityHandler,
        entityProvider,
        entityHandlerProvider,
        entitiesFetcher as EntitiesFetcher<E>?,
        entityCache);
  }

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