protected Object resolveConfigProperty(BeanDefinitionBase bd, ConfigProperty p, String name, Class<?> type, Type genericType) {
String keyPrefix = bd.getConfigurationPrefix();
if(!Strings.isEmpty(keyPrefix)) {
char lastChar = keyPrefix.charAt(keyPrefix.length() - 1);
if(Character.isLetter(lastChar) || Character.isDigit(lastChar)) {
keyPrefix = keyPrefix + ".";
}
}else{
keyPrefix = "";
}
if(p.value().length > 0) {
for(String key : p.value()) {
Object value = resolveConfigProperty(keyPrefix + key, type, genericType);
if(null != value){
return value;
}
}
}else{
Object value = resolveConfigProperty(keyPrefix + name, type, genericType);
if(null != value) {
return value;
}
value = resolveConfigProperty(keyPrefix + Strings.lowerHyphen(name), type, genericType);
if(null != value) {
return value;
}
}
return null;
}