Class PropertySerializerMap
- java.lang.Object
-
- com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap
-
public abstract class PropertySerializerMap extends java.lang.Object
Helper container used for resolving serializers for dynamic (possibly but not necessarily polymorphic) properties: properties whose type is not forced to use dynamic (declared) type and that are not final. If so, serializer to use can only be established once actual value type is known. Since this happens a lot unless static typing is forced (or types are final) this implementation is optimized for efficiency. Instances are immutable; new instances are created with factory methods: this is important to ensure correct multi-threaded access.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PropertySerializerMap.SerializerAndMapResult
Value class used for returning tuple that has both serializer that was retrieved and new map instance
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description PropertySerializerMap.SerializerAndMapResult
addSerializer(JavaType type, JsonSerializer<java.lang.Object> serializer)
PropertySerializerMap.SerializerAndMapResult
addSerializer(java.lang.Class<?> type, JsonSerializer<java.lang.Object> serializer)
Method that can be used to 'register' a serializer that caller has resolved without help of this map.static PropertySerializerMap
emptyForProperties()
static PropertySerializerMap
emptyForRootValues()
PropertySerializerMap.SerializerAndMapResult
findAndAddKeySerializer(java.lang.Class<?> type, SerializerProvider provider, BeanProperty property)
Method called if initial lookup fails, when looking for a key serializer (possible attached indirectly to a property) Will both find serializer and construct new map instance if warranted, and return both.PropertySerializerMap.SerializerAndMapResult
findAndAddPrimarySerializer(JavaType type, SerializerProvider provider, BeanProperty property)
PropertySerializerMap.SerializerAndMapResult
findAndAddPrimarySerializer(java.lang.Class<?> type, SerializerProvider provider, BeanProperty property)
Method called if initial lookup fails, when looking for a primary serializer (one that is directly attached to a property).PropertySerializerMap.SerializerAndMapResult
findAndAddRootValueSerializer(JavaType type, SerializerProvider provider)
PropertySerializerMap.SerializerAndMapResult
findAndAddRootValueSerializer(java.lang.Class<?> type, SerializerProvider provider)
Method called if initial lookup fails, when looking for a root value serializer: one that is not directly attached to a property, but needs to haveTypeSerializer
wrapped around it.PropertySerializerMap.SerializerAndMapResult
findAndAddSecondarySerializer(JavaType type, SerializerProvider provider, BeanProperty property)
PropertySerializerMap.SerializerAndMapResult
findAndAddSecondarySerializer(java.lang.Class<?> type, SerializerProvider provider, BeanProperty property)
Method called if initial lookup fails, when looking for a non-primary serializer (one that is not directly attached to a property).abstract PropertySerializerMap
newWith(java.lang.Class<?> type, JsonSerializer<java.lang.Object> serializer)
abstract JsonSerializer<java.lang.Object>
serializerFor(java.lang.Class<?> type)
Main lookup method.
-
-
-
Method Detail
-
serializerFor
public abstract JsonSerializer<java.lang.Object> serializerFor(java.lang.Class<?> type)
Main lookup method. Takes a "raw" type since usage is always from place where parameterization is fixed such that there cannot be type-parametric variations.
-
findAndAddPrimarySerializer
public final PropertySerializerMap.SerializerAndMapResult findAndAddPrimarySerializer(java.lang.Class<?> type, SerializerProvider provider, BeanProperty property) throws JsonMappingException
Method called if initial lookup fails, when looking for a primary serializer (one that is directly attached to a property). Will both find serializer and construct new map instance if warranted, and return both.- Throws:
JsonMappingException
- Since:
- 2.3
-
findAndAddPrimarySerializer
public final PropertySerializerMap.SerializerAndMapResult findAndAddPrimarySerializer(JavaType type, SerializerProvider provider, BeanProperty property) throws JsonMappingException
- Throws:
JsonMappingException
-
findAndAddSecondarySerializer
public final PropertySerializerMap.SerializerAndMapResult findAndAddSecondarySerializer(java.lang.Class<?> type, SerializerProvider provider, BeanProperty property) throws JsonMappingException
Method called if initial lookup fails, when looking for a non-primary serializer (one that is not directly attached to a property). Will both find serializer and construct new map instance if warranted, and return both.- Throws:
JsonMappingException
- Since:
- 2.3
-
findAndAddSecondarySerializer
public final PropertySerializerMap.SerializerAndMapResult findAndAddSecondarySerializer(JavaType type, SerializerProvider provider, BeanProperty property) throws JsonMappingException
- Throws:
JsonMappingException
-
findAndAddRootValueSerializer
public final PropertySerializerMap.SerializerAndMapResult findAndAddRootValueSerializer(java.lang.Class<?> type, SerializerProvider provider) throws JsonMappingException
Method called if initial lookup fails, when looking for a root value serializer: one that is not directly attached to a property, but needs to haveTypeSerializer
wrapped around it. Will both find the serializer and construct new map instance if warranted, and return both.- Throws:
JsonMappingException
- Since:
- 2.5
-
findAndAddRootValueSerializer
public final PropertySerializerMap.SerializerAndMapResult findAndAddRootValueSerializer(JavaType type, SerializerProvider provider) throws JsonMappingException
- Throws:
JsonMappingException
- Since:
- 2.5
-
findAndAddKeySerializer
public final PropertySerializerMap.SerializerAndMapResult findAndAddKeySerializer(java.lang.Class<?> type, SerializerProvider provider, BeanProperty property) throws JsonMappingException
Method called if initial lookup fails, when looking for a key serializer (possible attached indirectly to a property) Will both find serializer and construct new map instance if warranted, and return both.- Throws:
JsonMappingException
- Since:
- 2.7
-
addSerializer
public final PropertySerializerMap.SerializerAndMapResult addSerializer(java.lang.Class<?> type, JsonSerializer<java.lang.Object> serializer)
Method that can be used to 'register' a serializer that caller has resolved without help of this map.- Since:
- 2.5
-
addSerializer
public final PropertySerializerMap.SerializerAndMapResult addSerializer(JavaType type, JsonSerializer<java.lang.Object> serializer)
- Since:
- 2.5
-
newWith
public abstract PropertySerializerMap newWith(java.lang.Class<?> type, JsonSerializer<java.lang.Object> serializer)
-
emptyForProperties
public static PropertySerializerMap emptyForProperties()
- Since:
- 2.5
-
emptyForRootValues
public static PropertySerializerMap emptyForRootValues()
- Since:
- 2.5
-
-