com.github.jmkgreen.morphia.converters.MapOfValuesConverter Maven / Gradle / Ivy
/**
*
*/
package com.github.jmkgreen.morphia.converters;
import java.util.HashMap;
import java.util.Map;
import com.github.jmkgreen.morphia.mapping.MappedField;
import com.github.jmkgreen.morphia.mapping.MappingException;
import com.github.jmkgreen.morphia.utils.IterHelper;
import com.github.jmkgreen.morphia.utils.IterHelper.MapIterCallback;
import com.github.jmkgreen.morphia.utils.ReflectionUtils;
/**
* @author Uwe Schaefer, ([email protected])
*/
@SuppressWarnings({"unchecked","rawtypes"})
public class MapOfValuesConverter extends TypeConverter {
private final DefaultConverters converters;
public MapOfValuesConverter(DefaultConverters converters) {
this.converters = converters;
}
@Override
protected boolean isSupported(Class> c, MappedField optionalExtraInfo) {
if (optionalExtraInfo != null)
return optionalExtraInfo.isMap();
else
return ReflectionUtils.implementsInterface(c, Map.class);
}
@Override
public Object decode(Class targetClass, Object fromDBObject, final MappedField mf) throws MappingException {
if (fromDBObject == null) return null;
final Map values = mapr.getOptions().objectFactory.createMap(mf);
new IterHelper
© 2015 - 2025 Weber Informatics LLC | Privacy Policy