protected Object manageMapLoad(final Field f, final Object self, Object value, final boolean customSerialization) {
final Class genericType = OReflectionHelper.getGenericMultivalueType(f);
if (value instanceof ORecordLazyMap
|| (value instanceof OTrackedMap<?> && (genericType == null || !OReflectionHelper.isJavaType(genericType))
&& !customSerialization && (genericType == null || !genericType.isEnum()))) {
value = new OObjectLazyMap(self, (OTrackedMap<?>) value, OObjectEntitySerializer.isCascadeDeleteField(self.getClass(),
f.getName()));
} else if (customSerialization) {
value = new OObjectCustomSerializerMap<TYPE>(OObjectEntitySerializer.getSerializedType(f), doc, (Map<Object, Object>) value);
} else if (genericType != null && genericType.isEnum()) {
value = new OObjectEnumLazyMap(genericType, doc, (Map<Object, Object>) value);