toEntityReference method

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

Implementation

EntityReference<T> toEntityReference(
  Object? o, {
  Object? id,
  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,
      id,
      type,
      typeName,
      oEntityHandler,
      entityProvider,
      entityHandlerProvider,
      entityFetcher as EntityFetcher<E>?,
      entityCache,
    );
  }

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