Class ObjectMapperFactory
- java.lang.Object
-
- com.devonfw.module.json.common.base.ObjectMapperFactory
-
public class ObjectMapperFactory extends Object
A generic factory tocreateinstances of a JacksonObjectMapper. It allows to configure theObjectMapperfor polymorphic transfer-objects.- Since:
- 3.0.0
- See Also:
setBaseClasses(Class...),setSubtypes(NamedType...)
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static StringARTIFACT_IDprivate List<Class<?>>baseClassListprivate com.fasterxml.jackson.databind.module.SimpleModuleextensionModule(package private) static StringGROUP_IDprivate List<com.fasterxml.jackson.databind.jsontype.NamedType>subtypeList
-
Constructor Summary
Constructors Constructor Description ObjectMapperFactory()The constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBaseClasses(Class<?>... baseClasses)voidaddSubtypes(com.fasterxml.jackson.databind.jsontype.NamedType... subtypes)com.fasterxml.jackson.databind.ObjectMappercreateInstance()com.fasterxml.jackson.databind.module.SimpleModulegetExtensionModule()Gets access to a generic extensionmodulefor customizations to Jackson JSON mapping.protected com.fasterxml.jackson.databind.module.SimpleModuleinitMapping()voidsetBaseClasses(Class<?>... baseClasses)voidsetSubtypeList(List<com.fasterxml.jackson.databind.jsontype.NamedType> subtypeList)voidsetSubtypes(com.fasterxml.jackson.databind.jsontype.NamedType... subtypeList)
-
-
-
Field Detail
-
GROUP_ID
static final String GROUP_ID
- See Also:
- Constant Field Values
-
ARTIFACT_ID
static final String ARTIFACT_ID
- See Also:
- Constant Field Values
-
subtypeList
private List<com.fasterxml.jackson.databind.jsontype.NamedType> subtypeList
-
extensionModule
private com.fasterxml.jackson.databind.module.SimpleModule extensionModule
-
-
Method Detail
-
getExtensionModule
public com.fasterxml.jackson.databind.module.SimpleModule getExtensionModule()
Gets access to a generic extensionmodulefor customizations to Jackson JSON mapping.- Returns:
- extensionModule
- See Also:
SimpleModule.addSerializer(Class, com.fasterxml.jackson.databind.JsonSerializer),SimpleModule.addDeserializer(Class, com.fasterxml.jackson.databind.JsonDeserializer)
-
setBaseClasses
public void setBaseClasses(Class<?>... baseClasses)
- Parameters:
baseClasses- are the base classes that are polymorphic (e.g. abstract transfer-object classes that have sub-types). You also need to register all sub-types of these polymorphic classes viasetSubtypes(NamedType...).
-
addBaseClasses
public void addBaseClasses(Class<?>... baseClasses)
- Parameters:
baseClasses- the base-classes to add tobase classes list.- See Also:
setBaseClasses(Class...)
-
setSubtypeList
public void setSubtypeList(List<com.fasterxml.jackson.databind.jsontype.NamedType> subtypeList)
- Parameters:
subtypeList- theListofNamedTypes to register the subtypes.- See Also:
setSubtypes(NamedType...)
-
addSubtypes
public void addSubtypes(com.fasterxml.jackson.databind.jsontype.NamedType... subtypes)
- Parameters:
subtypes- theNamedTypes to add tosub-type listfor registration.- See Also:
setSubtypes(NamedType...)
-
setSubtypes
public void setSubtypes(com.fasterxml.jackson.databind.jsontype.NamedType... subtypeList)
- Parameters:
subtypeList- theNamedTypes as pair ofClassreflecting a polymorphic sub-type together with its unique name in JSON format.
-
createInstance
public com.fasterxml.jackson.databind.ObjectMapper createInstance()
- Returns:
- an instance of
ObjectMapperconfigured for polymorphic resolution.
-
initMapping
protected com.fasterxml.jackson.databind.module.SimpleModule initMapping()
- Returns:
- an instance of
SimpleModulefor registering configurations
-
-