in src/main/java/org/ini4j/spi/BeanTool.java [43:77]
public void inject(Object bean, BeanAccess props)
{
for (PropertyDescriptor pd : getPropertyDescriptors(bean.getClass()))
{
try
{
Method method = pd.getWriteMethod();
String name = pd.getName();
if ((method != null) && (props.propLength(name) != 0))
{
Object value;
if (pd.getPropertyType().isArray())
{
value = Array.newInstance(pd.getPropertyType().getComponentType(), props.propLength(name));
for (int i = 0; i < props.propLength(name); i++)
{
Array.set(value, i, parse(props.propGet(name, i), pd.getPropertyType().getComponentType()));
}
}
else
{
value = parse(props.propGet(name), pd.getPropertyType());
}
method.invoke(bean, value);
}
}
catch (Exception x)
{
throw new IllegalArgumentException("Failed to set property: " + pd.getDisplayName(), x);
}
}
}