resolveInstance<T> method

T resolveInstance<T>(
  1. Type type,
  2. Qualifier? qualifier,
  3. Parameter? parameter
)

Implementation

T resolveInstance<T>(Type type, Qualifier? qualifier, Parameter? parameter) {
  if (_closed) {
    throw ClosedScopeException('Scope $id is closed');
  }

  final indexKeyCurrent = indexKey(type, qualifier);

  final instance =
      _instanceRegistry.resolveInstance<T>(indexKeyCurrent, parameter);

  if (instance != null) return instance;
  final inOtherScope = findInOtherScope<T>(type, qualifier, parameter);
  if (inOtherScope != null) return inOtherScope;

  final fromSource = getFromSource<T>(type);

  if (fromSource == null) {
    final qualifierString =
        qualifier != null ? " & qualifier:'$qualifier'" : '';
    throw NoBeanDefFoundException("""
No definition found for class:'$type'$qualifierString. Check your definitions!""");
  }
  return fromSource;
}