in src/java/org/apache/fulcrum/parser/BaseValueParser.java [1491:1572]
protected void setProperty(Object bean,
PropertyDescriptor prop)
throws Exception
{
if (prop instanceof IndexedPropertyDescriptor)
{
throw new Exception(prop.getName() +
" is an indexed property (not supported)");
}
Method setter = prop.getWriteMethod();
if (setter == null)
{
throw new Exception(prop.getName() +
" is a read only property");
}
Class<?> propclass = prop.getPropertyType();
Object arg = null;
if (propclass == String.class)
{
arg = getString(prop.getName());
}
else if (propclass == Byte.class || propclass == Byte.TYPE)
{
arg = getByteObject(prop.getName());
}
else if (propclass == Integer.class || propclass == Integer.TYPE)
{
arg = getIntObject(prop.getName());
}
else if (propclass == Long.class || propclass == Long.TYPE)
{
arg = getLongObject(prop.getName());
}
else if (propclass == Boolean.class || propclass == Boolean.TYPE)
{
arg = getBooleanObject(prop.getName());
}
else if (propclass == Double.class || propclass == Double.TYPE)
{
arg = getDoubleObject(prop.getName());
}
else if (propclass == Float.class || propclass == Float.TYPE)
{
arg = getFloatObject(prop.getName());
}
else if (propclass == BigDecimal.class)
{
arg = getBigDecimal(prop.getName());
}
else if (propclass == String[].class)
{
arg = getStrings(prop.getName());
}
else if (propclass == Object.class)
{
arg = getObject(prop.getName());
}
else if (propclass == int[].class)
{
arg = getInts(prop.getName());
}
else if (propclass == Integer[].class)
{
arg = getIntObjects(prop.getName());
}
else if (propclass == Date.class)
{
arg = getDate(prop.getName());
}
else
{
throw new Exception("property "
+ prop.getName()
+ " is of unsupported type "
+ propclass.toString());
}
setter.invoke(bean, arg);
}