Class JacksonAdapter

    • Constructor Detail

      • JacksonAdapter

        public JacksonAdapter()
        Creates a new JacksonAdapter instance with default mapper settings.
      • JacksonAdapter

        public JacksonAdapter​(BiConsumer<ObjectMapper,​ObjectMapper> configureSerialization)
        Creates a new JacksonAdapter instance with Azure Core mapper settings and applies additional configuration through configureSerialization callback. configureSerialization callback provides outer and inner instances of ObjectMapper. Both of them are pre-configured for Azure serialization needs, but only outer mapper capable of flattening and populating additionalProperties. Outer mapper is used by JacksonAdapter for all serialization needs. Register modules on the outer instance to add custom (de)serializers similar to new JacksonAdapter((outer, inner) -> outer.registerModule(new MyModule())) Use inner mapper for chaining serialization logic in your (de)serializers.
        Parameters:
        configureSerialization - Applies additional configuration to outer mapper using inner mapper for module chaining.
    • Method Detail

      • simpleMapper

        @Deprecated
        protected ObjectMapper simpleMapper()
        Deprecated.
        deprecated, use JacksonAdapter(BiConsumer<ObjectMapper, ObjectMapper>) constructor to configure modules.
        Gets a static instance of ObjectMapper that doesn't handle flattening.
        Returns:
        an instance of ObjectMapper.
      • createDefaultSerializerAdapter

        public static SerializerAdapter createDefaultSerializerAdapter()
        maintain singleton instance of the default serializer adapter.
        Returns:
        the default serializer
      • serialize

        public String serialize​(Object object,
                                SerializerEncoding encoding)
                         throws IOException
        Description copied from interface: SerializerAdapter
        Serializes an object into a string.
        Specified by:
        serialize in interface SerializerAdapter
        Parameters:
        object - The object to serialize.
        encoding - The serialization encoding.
        Returns:
        The object serialized as a string using the specified encoding. If the object is null null is returned.
        Throws:
        IOException - If an IO exception was thrown during serialization.
      • serializeToBytes

        public byte[] serializeToBytes​(Object object,
                                       SerializerEncoding encoding)
                                throws IOException
        Description copied from interface: SerializerAdapter
        Serializes an object into a byte array.
        Specified by:
        serializeToBytes in interface SerializerAdapter
        Parameters:
        object - The object to serialize.
        encoding - The serialization encoding.
        Returns:
        The object serialized as a byte array.
        Throws:
        IOException - If an IO exception was thrown during serialization.
      • serializeRaw

        public String serializeRaw​(Object object)
        Description copied from interface: SerializerAdapter
        Serializes an object into a raw string, leading and trailing quotes will be trimmed.
        Specified by:
        serializeRaw in interface SerializerAdapter
        Parameters:
        object - The object to serialize.
        Returns:
        The object serialized as a string. If the object is null null is returned.
      • serializeList

        public String serializeList​(List<?> list,
                                    CollectionFormat format)
        Description copied from interface: SerializerAdapter
        Serializes a list into a string with the delimiter specified with the Swagger collection format joining each individual serialized items in the list.
        Specified by:
        serializeList in interface SerializerAdapter
        Parameters:
        list - The list to serialize.
        format - The collection joining format.
        Returns:
        The list serialized as a joined string.
      • deserialize

        public <T> T deserialize​(String value,
                                 Type type,
                                 SerializerEncoding encoding)
                          throws IOException
        Description copied from interface: SerializerAdapter
        Deserializes a string into an object.
        Specified by:
        deserialize in interface SerializerAdapter
        Type Parameters:
        T - The type of the deserialized object.
        Parameters:
        value - The string to deserialize.
        type - The type of the deserialized object.
        encoding - The deserialization encoding.
        Returns:
        The string deserialized into an object.
        Throws:
        IOException - If an IO exception was thrown during deserialization.
      • deserialize

        public <T> T deserialize​(byte[] bytes,
                                 Type type,
                                 SerializerEncoding encoding)
                          throws IOException
        Description copied from interface: SerializerAdapter
        Deserializes a byte array into an object.
        Specified by:
        deserialize in interface SerializerAdapter
        Type Parameters:
        T - The type of the deserialized object.
        Parameters:
        bytes - The byte array to deserialize.
        type - The type of the deserialized object.
        encoding - The deserialization encoding.
        Returns:
        The string deserialized into an object.
        Throws:
        IOException - If an IO exception was thrown during serialization.
      • deserialize

        public <T> T deserialize​(InputStream inputStream,
                                 Type type,
                                 SerializerEncoding encoding)
                          throws IOException
        Description copied from interface: SerializerAdapter
        Deserializes a stream into an object.
        Specified by:
        deserialize in interface SerializerAdapter
        Type Parameters:
        T - The type of the deserialized object.
        Parameters:
        inputStream - The InputStream to deserialize.
        type - The type of the deserialized object.
        encoding - The deserialization encoding.
        Returns:
        The stream deserialized into an object.
        Throws:
        IOException - If an IO exception was thrown during serialization.
      • deserialize

        public <T> T deserialize​(HttpHeaders headers,
                                 Type deserializedHeadersType)
                          throws IOException
        Description copied from interface: SerializerAdapter
        Deserialize the provided headers returned from a REST API to an entity instance declared as the model to hold 'Matching' headers.

        'Matching' headers are the REST API returned headers those with:

        1. header names same as name of a properties in the entity.
        2. header names start with value of HeaderCollection annotation applied to the properties in the entity.
        When needed, the 'header entity' types must be declared as first generic argument of ResponseBase returned by java proxy method corresponding to the REST API. e.g. Mono<RestResponseBase<FooMetadataHeaders, Void>> getMetadata(args); class FooMetadataHeaders { String name; {@literal @}HeaderCollection("header-collection-prefix-") Map<String,String> headerCollection; } in the case of above example, this method produces an instance of FooMetadataHeaders from provided headers.
        Specified by:
        deserialize in interface SerializerAdapter
        Type Parameters:
        T - the type of the deserialized object
        Parameters:
        headers - the REST API returned headers
        deserializedHeadersType - the type to deserialize
        Returns:
        instance of header entity type created based on provided headers, if header entity model does not not exists then return null
        Throws:
        IOException - If an I/O error occurs