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; }
protected void doBeanConfigure(Object bean, ReflectValued v, String keyPrefix, ConfigProperty a) { String defaultValue = null == a ? null : a.defaultValue(); if(null != a) { String[] keys = a.key(); if(keys.length == 0) { keys = a.value(); } if(keys.length > 0) { for(String key : keys) { if(doBeanConfigureByKey(bean, v, key(keyPrefix, key), defaultValue)) { break; } } return; } } if(doBeanConfigureByKey(bean, v, keyPrefix + v.getName(), defaultValue)) { return; } if(doBeanConfigureByKey(bean, v, keyPrefix + Strings.lowerHyphen(v.getName()), defaultValue)) { return; } if(doBeanConfigureByKey(bean, v, keyPrefix + Strings.lowerUnderscore(v.getName()), defaultValue)) { return; } }