All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.spikeify.converters.MapConverterFactory Maven / Gradle / Ivy

There is a newer version: 0.2.35
Show newest version
package com.spikeify.converters;

import com.spikeify.Converter;
import com.spikeify.ConverterFactory;
import com.spikeify.TypeUtils;
import com.spikeify.annotations.AsJson;

import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.Map;

public class MapConverterFactory implements ConverterFactory {

	@SuppressWarnings("unchecked")
	@Override
	public Converter init(Field field) {
		Type valueType = TypeUtils.getMapValueType(field);

		if (valueType != null && valueType instanceof Class) {
			Class classType = (Class) valueType;
			if (classType.isAnnotationPresent(AsJson.class)) {
				Class fieldType = field.getType();
				return new MapJsonConverter(fieldType, classType);
			}
		}

		return new MapConverter();
	}

	public boolean canConvert(Class type) {
		return Map.class.isAssignableFrom(type);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy