Object value = source.get(fieldName);
// convert
if (value!=null) {
// setup hints
TypeConversionHints nextHints = new TypeConversionHints();
if (prop.getConversionHints()!=null && !prop.getConversionHints().isEmpty()) {
for (Entry<String, Object> entry : prop.getConversionHints().entrySet()) {
nextHints.set(entry.getKey(), entry.getValue());
}
}
// add generic type parameter hints
Type[] genericParameterTypes = prop.getGenericParameterTypes();
if (genericParameterTypes!=null && genericParameterTypes.length>0) {
nextHints.set(TypeConversionHints.HINT_GENERIC_TYPE_PARAMETERS, genericParameterTypes);
}
// convert
value = context.convert(value, prop.getType(), nextHints);
}