getEntityRepository<T extends Object> method

EntityRepository<T>? getEntityRepository<T extends Object>({
  1. T? obj,
  2. Type? type,
  3. String? name,
  4. EntityRepositoryProvider? entityRepositoryProvider,
  5. EntityHandlerProvider? entityHandlerProvider,
  6. bool removeClosedProviders = false,
})

Implementation

EntityRepository<T>? getEntityRepository<T extends Object>(
    {T? obj,
    Type? type,
    String? name,
    EntityRepositoryProvider? entityRepositoryProvider,
    EntityHandlerProvider? entityHandlerProvider,
    bool removeClosedProviders = false}) {
  var self = this;
  if (self is! List<EntityRepositoryProvider> &&
      self is! Set<EntityRepositoryProvider>) {
    self = self.toList(growable: false);
  }

  var length = self.length;
  if (length == 0) {
    return null;
  } else if (length == 1) {
    return self.first
        .getEntityRepository<T>(obj: obj, type: type, name: name);
  }

  var notClosed = _whereNotClosed(self, length, removeClosedProviders);

  var entityRepositories = notClosed
      .map((e) => e.getEntityRepository<T>(obj: obj, type: type, name: name))
      .whereNotNull()
      .toList(growable: false);

  return _resolveEntityRepository<T>(entityRepositories, type,
      entityRepositoryProvider, entityHandlerProvider);
}