Class JacksonJsonDataFormat
- java.lang.Object
-
- org.camunda.spin.impl.json.jackson.format.JacksonJsonDataFormat
-
- All Implemented Interfaces:
DataFormat<SpinJsonNode>
public class JacksonJsonDataFormat extends java.lang.Object implements DataFormat<SpinJsonNode>
Spin data format that can wrap Json content and uses Jackson as its implementation. Caches an instance ofObjectMapperaccording to the advice given in the Jackson documentation.- Author:
- Thorben Lindhauer, Stefan Hentschel
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDATA_FORMAT_NAMEprotected JacksonJsonDataFormatMapperdataFormatMapperprotected JacksonJsonDataFormatReaderdataFormatReaderprotected JacksonJsonDataFormatWriterdataFormatWriterprotected com.jayway.jsonpath.ConfigurationjsonPathConfigurationThe JsonPath configurationprotected java.lang.Stringnameprotected com.fasterxml.jackson.databind.ObjectMapperobjectMapperThe Jackson Object Mapper used by this dataformatprotected java.util.List<TypeDetector>typeDetectors
-
Constructor Summary
Constructors Constructor Description JacksonJsonDataFormat(java.lang.String name)JacksonJsonDataFormat(java.lang.String name, com.fasterxml.jackson.databind.ObjectMapper objectMapper)JacksonJsonDataFormat(java.lang.String name, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.jayway.jsonpath.Configuration jsonPathConfiguration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTypeDetector(TypeDetector typeDetector)com.fasterxml.jackson.databind.JavaTypeconstructJavaTypeFromCanonicalString(java.lang.String canonicalString)Constructs aJavaTypeobject based on the parameter, which has to follow Jackson's canonical type string format.com.fasterxml.jackson.databind.JsonNodecreateJsonNode(java.lang.Boolean parameter)com.fasterxml.jackson.databind.JsonNodecreateJsonNode(java.lang.Float parameter)com.fasterxml.jackson.databind.JsonNodecreateJsonNode(java.lang.Integer parameter)com.fasterxml.jackson.databind.JsonNodecreateJsonNode(java.lang.Long parameter)com.fasterxml.jackson.databind.JsonNodecreateJsonNode(java.lang.Object parameter)com.fasterxml.jackson.databind.JsonNodecreateJsonNode(java.lang.String parameter)com.fasterxml.jackson.databind.JsonNodecreateJsonNode(java.util.List<java.lang.Object> parameter)com.fasterxml.jackson.databind.JsonNodecreateJsonNode(java.util.Map<java.lang.String,java.lang.Object> parameter)com.fasterxml.jackson.databind.JsonNodecreateNullJsonNode()SpinJsonNodecreateWrapperInstance(java.lang.Object parameter)java.lang.StringgetCanonicalTypeName(java.lang.Object object)Identifies the canonical type of an object heuristically.com.jayway.jsonpath.ConfigurationgetJsonPathConfiguration()Returns aConfigurationobject for jayway json path which uses this dataformat's object mapper asJsonProvider.JacksonJsonDataFormatMappergetMapper()java.lang.StringgetName()com.fasterxml.jackson.databind.ObjectMappergetObjectMapper()Returns the configured JacksonObjectMapperinstance.JacksonJsonDataFormatReadergetReader()java.lang.Class<? extends SpinJsonNode>getWrapperType()JacksonJsonDataFormatWritergetWriter()protected voidinit()protected voidinitMapper()protected voidinitReader()protected voidinitTypeDetectors()protected voidinitWriter()voidsetJsonPathConfiguration(com.jayway.jsonpath.Configuration jsonPathConfiguration)voidsetObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
-
-
Field Detail
-
DATA_FORMAT_NAME
public static final java.lang.String DATA_FORMAT_NAME
-
objectMapper
protected com.fasterxml.jackson.databind.ObjectMapper objectMapper
The Jackson Object Mapper used by this dataformat
-
jsonPathConfiguration
protected com.jayway.jsonpath.Configuration jsonPathConfiguration
The JsonPath configuration
-
typeDetectors
protected java.util.List<TypeDetector> typeDetectors
-
dataFormatReader
protected JacksonJsonDataFormatReader dataFormatReader
-
dataFormatWriter
protected JacksonJsonDataFormatWriter dataFormatWriter
-
dataFormatMapper
protected JacksonJsonDataFormatMapper dataFormatMapper
-
name
protected final java.lang.String name
-
-
Constructor Detail
-
JacksonJsonDataFormat
public JacksonJsonDataFormat(java.lang.String name)
-
JacksonJsonDataFormat
public JacksonJsonDataFormat(java.lang.String name, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
JacksonJsonDataFormat
public JacksonJsonDataFormat(java.lang.String name, com.fasterxml.jackson.databind.ObjectMapper objectMapper, com.jayway.jsonpath.Configuration jsonPathConfiguration)
-
-
Method Detail
-
init
protected void init()
-
initMapper
protected void initMapper()
-
initWriter
protected void initWriter()
-
initReader
protected void initReader()
-
initTypeDetectors
protected void initTypeDetectors()
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfaceDataFormat<SpinJsonNode>
-
getWrapperType
public java.lang.Class<? extends SpinJsonNode> getWrapperType()
- Specified by:
getWrapperTypein interfaceDataFormat<SpinJsonNode>
-
createWrapperInstance
public SpinJsonNode createWrapperInstance(java.lang.Object parameter)
- Specified by:
createWrapperInstancein interfaceDataFormat<SpinJsonNode>
-
getCanonicalTypeName
public java.lang.String getCanonicalTypeName(java.lang.Object object)
Identifies the canonical type of an object heuristically.- Returns:
- the canonical type identifier of the object's class
according to Jackson's type format (see
TypeFactory.constructFromCanonical(String))
-
constructJavaTypeFromCanonicalString
public com.fasterxml.jackson.databind.JavaType constructJavaTypeFromCanonicalString(java.lang.String canonicalString)
Constructs aJavaTypeobject based on the parameter, which has to follow Jackson's canonical type string format.- Parameters:
canonicalString- canonical string representation of the type- Returns:
- the constructed java type
- Throws:
SpinJsonDataFormatException- if no type can be constructed from the given parameter
-
addTypeDetector
public void addTypeDetector(TypeDetector typeDetector)
-
getMapper
public JacksonJsonDataFormatMapper getMapper()
- Specified by:
getMapperin interfaceDataFormat<SpinJsonNode>
-
getReader
public JacksonJsonDataFormatReader getReader()
- Specified by:
getReaderin interfaceDataFormat<SpinJsonNode>
-
getWriter
public JacksonJsonDataFormatWriter getWriter()
- Specified by:
getWriterin interfaceDataFormat<SpinJsonNode>
-
getJsonPathConfiguration
public com.jayway.jsonpath.Configuration getJsonPathConfiguration()
Returns aConfigurationobject for jayway json path which uses this dataformat's object mapper asJsonProvider.- Returns:
- the
Configurationfor jsonpath
-
setJsonPathConfiguration
public void setJsonPathConfiguration(com.jayway.jsonpath.Configuration jsonPathConfiguration)
-
getObjectMapper
public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
Returns the configured JacksonObjectMapperinstance.- Returns:
- the configured object mapper.
-
setObjectMapper
public void setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
createJsonNode
public com.fasterxml.jackson.databind.JsonNode createJsonNode(java.lang.Object parameter)
-
createJsonNode
public com.fasterxml.jackson.databind.JsonNode createJsonNode(java.lang.String parameter)
-
createJsonNode
public com.fasterxml.jackson.databind.JsonNode createJsonNode(java.lang.Integer parameter)
-
createJsonNode
public com.fasterxml.jackson.databind.JsonNode createJsonNode(java.lang.Float parameter)
-
createJsonNode
public com.fasterxml.jackson.databind.JsonNode createJsonNode(java.lang.Long parameter)
-
createJsonNode
public com.fasterxml.jackson.databind.JsonNode createJsonNode(java.lang.Boolean parameter)
-
createJsonNode
public com.fasterxml.jackson.databind.JsonNode createJsonNode(java.util.List<java.lang.Object> parameter)
-
createJsonNode
public com.fasterxml.jackson.databind.JsonNode createJsonNode(java.util.Map<java.lang.String,java.lang.Object> parameter)
-
createNullJsonNode
public com.fasterxml.jackson.databind.JsonNode createNullJsonNode()
-
-