package flexjson.factories; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.HashMap; import java.util.Map; import flexjson.ObjectBinder; import flexjson.ObjectFactory; public class MapObjectFactory implements ObjectFactory { public Object instantiate(ObjectBinder context, Object value, Type targetType, Class targetClass) { if (targetType != null) { if (targetType instanceof ParameterizedType) { ParameterizedType ptype= (ParameterizedType) targetType; return context.bindIntoMap((Map) value, new HashMap<Object, Object>(), ptype.getActualTypeArguments()[0], ptype.getActualTypeArguments()[1]); } } return context.bindIntoMap((Map) value, new HashMap<Object, Object>(), null, null); } }