Class 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 of ObjectMapper according to the advice given in the Jackson documentation.
    Author:
    Thorben Lindhauer, Stefan Hentschel
    • 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
      • 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()
      • 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 a JavaType 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)
      • getJsonPathConfiguration

        public com.jayway.jsonpath.Configuration getJsonPathConfiguration()
        Returns a Configuration object for jayway json path which uses this dataformat's object mapper as JsonProvider.
        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 Jackson ObjectMapper 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()