deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/converter/BeanConverterFactory.java
/**
     * Determine the bean converter function to be used according to the rules defined in
     * {@link org.apache.deltaspike.core.api.config.ConfigResolver.UntypedResolver#asBean(Class)}
     */
Determine the bean converter function to be used according to the rules defined in
org.apache.deltaspike.core.api.config.ConfigResolver.UntypedResolver#asBean(Class)
Determine the bean converter function to be used according to the rules defined in org . apache . deltaspike . core . api . config . ConfigResolver . UntypedResolver#asBean ( Class )
public <N> BiFunction<Config, String, N> detectConverter(Class<N> clazz)
    {
        BiFunction<Config, String, N> beanConverter = (BiFunction<Config, String, N>) beanConverters.get(clazz);
        if (beanConverter == null)
        {
            final List<Constructor<?>> paramConstructors = Arrays.stream(clazz.getConstructors())
                .filter(ct -> ct.getParameterTypes().length > 0)
                .collect(Collectors.toList());
            if (paramConstructors.size() > 1)
            {
                throw new IllegalStateException("Cannot handle beans with multiple non-default ct");
            }
            if (paramConstructors.size() == 0)
            {
                beanConverter = new FieldInjectionBeanConverter(clazz);
            }
            else
            {
                beanConverter = new CtInjectionBeanConverter(clazz, paramConstructors.get(0));
            }
            beanConverters.putIfAbsent(clazz, beanConverter);
        }
        return beanConverter;
    }
public < N > BiFunction < Config , String , N > detectConverter ( Class < N > clazz ) { BiFunction < Config , String , N > beanConverter = ( BiFunction < Config , String , N > ) beanConverters . get ( clazz ) ; if ( beanConverter == null ) { final List < Constructor < ? > > paramConstructors = Arrays . stream ( clazz . getConstructors ( ) ) . filter ( ct -> ct . getParameterTypes ( ) . length > 0 ) . collect ( Collectors . toList ( ) ) ; if ( paramConstructors . size ( ) > 1 ) { throw new IllegalStateException ( "Cannot handle beans with multiple non-default ct" ) ; } if ( paramConstructors . size ( ) == 0 ) { beanConverter = new FieldInjectionBeanConverter ( clazz ) ; } else { beanConverter = new CtInjectionBeanConverter ( clazz , paramConstructors . get ( 0 ) ) ; } beanConverters . putIfAbsent ( clazz , beanConverter ) ; } return beanConverter ; }
Determine the bean converter function to be used according to the rules defined in
 {@link org.apache.deltaspike.core.api.config.ConfigResolver.UntypedResolver#asBean(Class)}
Determine the bean converter function to be used according to the rules defined in { @link org . apache . deltaspike . core . api . config . ConfigResolver . UntypedResolver#asBean ( Class ) }
// class with public param ct // use field config injection