001 002package io.vrap.rmf.base.client; 003 004import com.fasterxml.jackson.core.JsonProcessingException; 005import com.fasterxml.jackson.core.type.TypeReference; 006import com.fasterxml.jackson.databind.JavaType; 007import com.fasterxml.jackson.databind.ObjectMapper; 008 009import io.vrap.rmf.base.client.utils.json.JsonUtils; 010 011/** 012 * Interface to deserialize a response to a specified output type 013 */ 014public interface ResponseSerializer { 015 <O> ApiHttpResponse<O> convertResponse(final ApiHttpResponse<byte[]> response, final Class<O> outputType); 016 017 <O> ApiHttpResponse<O> convertResponse(final ApiHttpResponse<byte[]> response, final JavaType outputType); 018 019 <O> ApiHttpResponse<O> convertResponse(final ApiHttpResponse<byte[]> response, final TypeReference<O> outputType); 020 021 byte[] toJsonByteArray(final Object value) throws JsonProcessingException; 022 023 static ResponseSerializer of() { 024 return new ResponseSerializerImpl(JsonUtils.getConfiguredObjectMapper()); 025 } 026 027 static ResponseSerializer of(final ObjectMapper mapper) { 028 return new ResponseSerializerImpl(mapper); 029 } 030}