private < T extends AnnotatedElement > Map < T , PropertyInfo > resolveConfig ( String keyPrefix , T element , Set < Class > resolvedConfigs ) { Map < T , PropertyInfo > result = new HashMap <> ( ) ; if ( ! element . isAnnotationPresent ( Config . class ) ) { return result ; } String prefix = concat ( keyPrefix , element . getAnnotation ( Config . class ) . prefix ( ) ) ; Class < ? > returnType = getValueType ( element ) ; checkRecursiveConfigs ( resolvedConfigs , returnType ) ; resolvedConfigs . add ( returnType ) ; Object proxy = populate ( prefix , returnType , resolvedConfigs ) ; result . put ( element , new PropertyInfo ( proxy ) ) ; return result ; }
Resolve the config for given element .