@SuppressWarnings({ "unchecked", "rawtypes" }) protected Object doResolveCollection(final BeanDefinitionBase bd,final ValueDefinition vd){ Supplier<Collection> func = new Supplier<Collection>() { @Override public Collection get() { Collection definedCol = (Collection)vd.getDefinedValue(); Collection createdCol = createCollection(bd, vd,definedCol); for(Object element : definedCol){ Object value = element instanceof ValueDefinition ? doResolveValue(bd, (ValueDefinition)element, null) : element; createdCol.add(doConvertValue(value, vd.getDefinedElementType())); } return createdCol; } }; vd.resolved(func); return func.get(); }
protected Object doResolveArray(final BeanDefinitionBase bd,final ValueDefinition vd){ Supplier<Object> func = new Supplier<Object>() { @Override public Object get() { Object definedArray = vd.getDefinedValue(); Object createdArray = null; int arrayLength = Array.getLength(definedArray); createdArray = Array.newInstance(definedArray.getClass().getComponentType(), arrayLength); for(int i=0;i<arrayLength;i++){ Object element = Array.get(definedArray, i); Object value = element instanceof ValueDefinition ? doResolveValue(bd, (ValueDefinition)element, null) : element; Array.set(createdArray, i, doConvertValue(value, vd.getDefinedElementType())); } return createdArray; } }; vd.resolved(func); return func.get(); }
vd.resolved(null); }else{ definedValue = placeholderResolver.resolveString(defaultValue); vd.resolved(doConvertValue(definedValue, vd.getDefinedType())); vd.resolved(beanReferenceValue); return beanReferenceValue.get(); }else if(definedValue instanceof BeanDefinitionBase){ Supplier<Object> beanValue = createBeanValue(bd,(BeanDefinitionBase)definedValue); vd.resolved(beanValue); return beanValue.get(); }else if(definedValue instanceof Collection){ vd.resolved(doConvertValue(resolvedValue, vd.getDefinedType())); return resolvedValue;