FastutilDeserializers.java
package tools.jackson.datatype.fastutil;
import tools.jackson.databind.BeanDescription;
import tools.jackson.databind.DeserializationConfig;
import tools.jackson.databind.KeyDeserializer;
import tools.jackson.databind.ValueDeserializer;
import tools.jackson.databind.deser.Deserializers;
import tools.jackson.databind.jsontype.TypeDeserializer;
import tools.jackson.databind.type.CollectionType;
import tools.jackson.databind.type.MapType;
import tools.jackson.datatype.fastutil.deser.PrimitiveCollectionDeserializers;
import tools.jackson.datatype.fastutil.deser.map.FastutilMapDeserializers;
/**
* Deserializers for fastutil collections and maps that contain primitive values.
* Abstract containers of references (like {@code ObjectList}) are instead mapped
* to default implementations by {@link FastutilAbstractTypeResolver}.
*/
public class FastutilDeserializers extends Deserializers.Base
{
@Override
public ValueDeserializer<?> findCollectionDeserializer(CollectionType type,
DeserializationConfig config, BeanDescription.Supplier beanDescRef,
TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)
{
return PrimitiveCollectionDeserializers.findDeserializer(config, type, elementDeserializer);
}
@Override
public ValueDeserializer<?> findMapDeserializer(MapType type,
DeserializationConfig config, BeanDescription.Supplier beanDescRef,
KeyDeserializer keyDeserializer,
TypeDeserializer elementTypeDeserializer, ValueDeserializer<?> elementDeserializer)
{
return FastutilMapDeserializers.findDeserializer(config, type, keyDeserializer,
elementTypeDeserializer, elementDeserializer);
}
@Override
public boolean hasDeserializerFor(DeserializationConfig config, Class<?> valueType) {
return PrimitiveCollectionDeserializers.handles(valueType)
|| FastutilMapDeserializers.handles(valueType);
}
}