@Override public boolean resolveInjectValue(BeanDefinition bd, Object bean, ReflectValued v, Annotation a, Out<Object> value) { if(!(v.getType().equals(Dyna.class) || v.getType().equals(Dao.class))) { return false; } if(!bd.isPrimary()) { return false; } if (v.getType().equals(Dao.class)) { value.set(dao); return true; } Class<?>[] types = Types.getActualTypeArguments(v.getGenericType()); if (types.length != 1) { return false; } Class<?> type = types[0]; if (type.equals(Dao.class)) { value.set(dao); return true; } return false; }
return false; if(v.getType().isArray() && Class.class.isAssignableFrom(v.getType().getComponentType())){ java.lang.reflect.Type type = v.getGenericType(); if(type instanceof GenericArrayType){ if(List.class.isAssignableFrom(v.getType()) && Class.class.isAssignableFrom(Types.getActualTypeArgument(v.getGenericType()))){ java.lang.reflect.Type elementType = v.getGenericType(); if(elementType instanceof ParameterizedType){
protected boolean doBeanConfigureByKey(Object bean, ReflectValued v, String key, String defaultValue) { if(Property.class.isAssignableFrom(v.getType())) { doBeanConfigureDynaProperty(bean, v, key, defaultValue); return true; if(v.getType().isArray()) { String[] array = config.getArrayProperty(key); if(List.class.equals(v.getType())) { String[] array = config.getArrayProperty(key); if(Set.class.equals(v.getType())) { String[] array = config.getArrayProperty(key); try { Object value; if(Classes.isSimpleValueType(v.getType())) { value = Converts.convert(prop, v.getType(), v.getGenericType()); }else{ value = JSON.decode(prop, v.getType(), v.getGenericType());
@Override public boolean resolveInjectValue(BeanDefinition bd, Object bean, ReflectValued v, Annotation a, Out<Object> value) { if (!leap.orm.dao.DaoCommand.class.equals(v.getType())) { return false; } KeyAndDataSource kds; if (a.annotationType().equals(Inject.class)) { kds = resolveSqlIdentity(bd, v, (Inject) a); } else if (a.annotationType().equals(SqlKey.class)) { kds = resolveSqlIdentity(bd, v, (SqlKey) a); } else { return false; } SqlCommand sql = sqls.tryGetSqlCommand(kds.key); if (null == sql) { throw new BeanCreationException("Sql key '" + kds.key + "' not found, check the bean : " + bd); } Dao dao; if (!Strings.isEmpty(sql.getDataSourceName())) { dao = Dao.get(sql.getDataSourceName()); } else if (!Strings.isEmpty(kds.dataSource)) { dao = Dao.get(kds.dataSource); } else { dao = Dao.get(); } value.set(new SimpleDaoCommand(dao, sql)); return true; }
private void configureNested(Object bean, String keyPrefix, ReflectValued member, Configurable.Nested nested) { String nestedPrefix = nested.prefix(); if(Strings.isEmpty(nestedPrefix)) { nestedPrefix = Strings.lowerUnderscore(member.getName()); if(nestedPrefix.endsWith("_config")) { nestedPrefix = Strings.removeEnd(nestedPrefix, "_config"); } } String fullKeyPrefix = keyPrefix(keyPrefix + nestedPrefix); Object nestedBean = member.getValue(bean); BeanType nestedType; if(null == nestedBean) { nestedType = BeanType.of(member.getType()); nestedBean = nestedType.newInstance(); member.setValue(bean, nestedBean); }else{ nestedType = BeanType.of(nestedBean.getClass()); } configure(nestedBean, nestedType, fullKeyPrefix); }