if (isBlock(value))
result = delegate("value", iManager, value, iContext, iOutput, iReadOnly);
else
result = value;
final Object source = getField(iContext, iConfig, "source");
<BUG>if (source instanceof ODocument && result instanceof List<?>) {
final List<Object> list = new ArrayList<Object>();
for (Object o : (List<Object>) result) {
if (o != null)
list.add(((ODocument) source).field(o.toString()));
}
result = list;</BUG>
} else if (OMultiValue.isMultiValue(result) && flatMultivalues != null && flatMultivalues) {

if (isBlock(value))
result = delegate("value", iManager, value, iContext, iOutput, iReadOnly);
else
result = value;
final Object source = getField(iContext, iConfig, "source");
if (source instanceof ODocument && result instanceof List<?>) {
result = addDocumentFields((ODocument) source, (List<Object>) result);
} else if (OMultiValue.isMultiValue(result) && flatMultivalues != null && flatMultivalues) {
result = flatMultivalues(iContext, false, flatMultivalues, result);
