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 ofObjectMapper
according to the advice given in the Jackson documentation.- Author:
- Thorben Lindhauer, Stefan Hentschel
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DATA_FORMAT_NAME
protected JacksonJsonDataFormatMapper
dataFormatMapper
protected JacksonJsonDataFormatReader
dataFormatReader
protected JacksonJsonDataFormatWriter
dataFormatWriter
protected com.jayway.jsonpath.Configuration
jsonPathConfiguration
The JsonPath configurationprotected java.lang.String
name
protected com.fasterxml.jackson.databind.ObjectMapper
objectMapper
The 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 void
addTypeDetector(TypeDetector typeDetector)
com.fasterxml.jackson.databind.JavaType
constructJavaTypeFromCanonicalString(java.lang.String canonicalString)
Constructs aJavaType
object based on the parameter, which has to follow Jackson's canonical type string format.com.fasterxml.jackson.databind.JsonNode
createJsonNode(java.lang.Boolean parameter)
com.fasterxml.jackson.databind.JsonNode
createJsonNode(java.lang.Float parameter)
com.fasterxml.jackson.databind.JsonNode
createJsonNode(java.lang.Integer parameter)
com.fasterxml.jackson.databind.JsonNode
createJsonNode(java.lang.Long parameter)
com.fasterxml.jackson.databind.JsonNode
createJsonNode(java.lang.Object parameter)
com.fasterxml.jackson.databind.JsonNode
createJsonNode(java.lang.String parameter)
com.fasterxml.jackson.databind.JsonNode
createJsonNode(java.util.List<java.lang.Object> parameter)
com.fasterxml.jackson.databind.JsonNode
createJsonNode(java.util.Map<java.lang.String,java.lang.Object> parameter)
com.fasterxml.jackson.databind.JsonNode
createNullJsonNode()
SpinJsonNode
createWrapperInstance(java.lang.Object parameter)
java.lang.String
getCanonicalTypeName(java.lang.Object object)
Identifies the canonical type of an object heuristically.com.jayway.jsonpath.Configuration
getJsonPathConfiguration()
Returns aConfiguration
object for jayway json path which uses this dataformat's object mapper asJsonProvider
.JacksonJsonDataFormatMapper
getMapper()
java.lang.String
getName()
com.fasterxml.jackson.databind.ObjectMapper
getObjectMapper()
Returns the configured JacksonObjectMapper
instance.JacksonJsonDataFormatReader
getReader()
java.lang.Class<? extends SpinJsonNode>
getWrapperType()
JacksonJsonDataFormatWriter
getWriter()
protected void
init()
protected void
initMapper()
protected void
initReader()
protected void
initTypeDetectors()
protected void
initWriter()
void
setJsonPathConfiguration(com.jayway.jsonpath.Configuration jsonPathConfiguration)
void
setObjectMapper(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:
getName
in interfaceDataFormat<SpinJsonNode>
-
getWrapperType
public java.lang.Class<? extends SpinJsonNode> getWrapperType()
- Specified by:
getWrapperType
in interfaceDataFormat<SpinJsonNode>
-
createWrapperInstance
public SpinJsonNode createWrapperInstance(java.lang.Object parameter)
- Specified by:
createWrapperInstance
in 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 aJavaType
object 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:
getMapper
in interfaceDataFormat<SpinJsonNode>
-
getReader
public JacksonJsonDataFormatReader getReader()
- Specified by:
getReader
in interfaceDataFormat<SpinJsonNode>
-
getWriter
public JacksonJsonDataFormatWriter getWriter()
- Specified by:
getWriter
in interfaceDataFormat<SpinJsonNode>
-
getJsonPathConfiguration
public com.jayway.jsonpath.Configuration getJsonPathConfiguration()
Returns aConfiguration
object for jayway json path which uses this dataformat's object mapper asJsonProvider
.- Returns:
- the
Configuration
for jsonpath
-
setJsonPathConfiguration
public void setJsonPathConfiguration(com.jayway.jsonpath.Configuration jsonPathConfiguration)
-
getObjectMapper
public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
Returns the configured JacksonObjectMapper
instance.- 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()
-
-