protected @Nonnull <T> Provider<T> getBeanProvider(@Nullable BeanResolutionContext resolutionContext, @Nonnull Class<T> beanType, @Nullable Qualifier<T> qualifier) {
        ArgumentUtils.requireNonNull("beanType", beanType);
        @SuppressWarnings("unchecked") BeanRegistration<T> beanRegistration = singletonObjects.get(new BeanKey(beanType, qualifier));
        if (beanRegistration != null) {
            return new ResolvedProvider<>(beanRegistration.bean);
        }

        Optional<BeanDefinition<T>> concreteCandidate = findConcreteCandidate(beanType, qualifier, true, false);
        if (concreteCandidate.isPresent()) {
            return new UnresolvedProvider<>(beanType, qualifier, this);
        } else {
            throw new NoSuchBeanException(beanType);
        }
    }
protected @ Nonnull < T > Provider < T > getBeanProvider ( @ Nullable BeanResolutionContext resolutionContext , @ Nonnull Class < T > beanType , @ Nullable Qualifier < T > qualifier ) { ArgumentUtils . requireNonNull ( "beanType" , beanType ) ; @ SuppressWarnings ( "unchecked" ) BeanRegistration < T > beanRegistration = singletonObjects . get ( new BeanKey ( beanType , qualifier ) ) ; if ( beanRegistration != null ) { return new ResolvedProvider < > ( beanRegistration . bean ) ; } Optional < BeanDefinition < T > > concreteCandidate = findConcreteCandidate ( beanType , qualifier , true , false ) ; if ( concreteCandidate . isPresent ( ) ) { return new UnresolvedProvider < > ( beanType , qualifier , this ) ; } else { throw new NoSuchBeanException ( beanType ) ; } }
Get a bean provider.

@param resolutionContext The bean resolution context
@param beanType          The bean type
@param qualifier         The qualifier
@param <T>               The bean type parameter
@return The bean provider