Class BasicSerializerFactory
java.lang.Object
com.fasterxml.jackson.databind.ser.SerializerFactory
com.fasterxml.jackson.databind.ser.BasicSerializerFactory
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
BeanSerializerFactory
Factory class that can provide serializers for standard JDK classes,
as well as custom classes that extend standard classes or implement
one of "well-known" interfaces (such as
Collection).
Since all the serializers are eagerly instantiated, and there is no additional introspection or customizability of these types, this factory is essentially stateless.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionbuildCollectionSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, JsonSerializer<Object> valueSerializer) buildEnumSetSerializer(JavaType enumType) buildIndexedListSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, JsonSerializer<Object> valueSerializer) createKeySerializer(SerializationConfig config, JavaType keyType, JsonSerializer<Object> defaultImpl) Deprecated.createKeySerializer(SerializerProvider ctxt, JavaType keyType, JsonSerializer<Object> defaultImpl) Method called to create serializer to use for serializing JSON property names (which must be output asJsonToken.FIELD_NAME) for Map that has specified declared key type, and is for specified property (or, if property is null, as root value)abstract JsonSerializer<Object> createSerializer(SerializerProvider prov, JavaType type) Method called to create (or, for immutable serializers, reuse) a serializer for given type.createTypeSerializer(SerializationConfig config, JavaType baseType) Method called to construct a type serializer for values with given declared base type.findReferenceSerializer(SerializerProvider prov, ReferenceType refType, BeanDescription beanDesc, boolean staticTyping) Method for getting currentSerializerFactoryConfig.final SerializerFactorywithAdditionalKeySerializers(Serializers additional) Convenience method for creating a new factory instance with an additional key serializer provider.final SerializerFactorywithAdditionalSerializers(Serializers additional) Convenience method for creating a new factory instance with an additional serializer provider.abstract SerializerFactorywithConfig(SerializerFactoryConfig config) Method used for creating a new instance of this factory, but with different configuration.final SerializerFactorywithSerializerModifier(BeanSerializerModifier modifier) Convenience method for creating a new factory instance with additional bean serializer modifier.
-
Method Details
-
getFactoryConfig
Method for getting currentSerializerFactoryConfig.Note that since instances are immutable, you can NOT change settings by accessing an instance and calling methods: this will simply create new instance of config object.
-
withConfig
Method used for creating a new instance of this factory, but with different configuration. Reason for specifying factory method (instead of plain constructor) is to allow proper sub-classing of factories.Note that custom sub-classes generally must override implementation of this method, as it usually requires instantiating a new instance of factory type. Check out javadocs for
BeanSerializerFactoryfor more details. -
withAdditionalSerializers
Convenience method for creating a new factory instance with an additional serializer provider.- Specified by:
withAdditionalSerializersin classSerializerFactory
-
withAdditionalKeySerializers
Convenience method for creating a new factory instance with an additional key serializer provider.- Specified by:
withAdditionalKeySerializersin classSerializerFactory
-
withSerializerModifier
Convenience method for creating a new factory instance with additional bean serializer modifier.- Specified by:
withSerializerModifierin classSerializerFactory
-
createSerializer
public abstract JsonSerializer<Object> createSerializer(SerializerProvider prov, JavaType type) throws JsonMappingException Description copied from class:SerializerFactoryMethod called to create (or, for immutable serializers, reuse) a serializer for given type.- Specified by:
createSerializerin classSerializerFactory- Parameters:
prov- Provider that needs to be used to resolve annotation-provided serializers (but NOT for others)- Throws:
JsonMappingException
-
createKeySerializer
public JsonSerializer<Object> createKeySerializer(SerializerProvider ctxt, JavaType keyType, JsonSerializer<Object> defaultImpl) throws JsonMappingException Description copied from class:SerializerFactoryMethod called to create serializer to use for serializing JSON property names (which must be output asJsonToken.FIELD_NAME) for Map that has specified declared key type, and is for specified property (or, if property is null, as root value)- Overrides:
createKeySerializerin classSerializerFactory- Parameters:
keyType- Declared type for Map keysdefaultImpl- Default key serializer implementation to use, if no custom ones are found (may be null)- Returns:
- Serializer to use, if factory knows it; null if not (in which case default serializer is to be used)
- Throws:
JsonMappingException
-
createKeySerializer
@Deprecated public JsonSerializer<Object> createKeySerializer(SerializationConfig config, JavaType keyType, JsonSerializer<Object> defaultImpl) Deprecated.- Specified by:
createKeySerializerin classSerializerFactory
-
createTypeSerializer
Method called to construct a type serializer for values with given declared base type. This is called for values other than those of bean property types.- Specified by:
createTypeSerializerin classSerializerFactory- Parameters:
baseType- Declared type to use as the base type for type information serializer- Returns:
- Type serializer to use for the base type, if one is needed; null if not.
-
buildIndexedListSerializer
public ContainerSerializer<?> buildIndexedListSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, JsonSerializer<Object> valueSerializer) -
buildCollectionSerializer
public ContainerSerializer<?> buildCollectionSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, JsonSerializer<Object> valueSerializer) -
buildEnumSetSerializer
-
findReferenceSerializer
public JsonSerializer<?> findReferenceSerializer(SerializerProvider prov, ReferenceType refType, BeanDescription beanDesc, boolean staticTyping) throws JsonMappingException - Throws:
JsonMappingException- Since:
- 2.7
-