/**
*
*/
package com.github.lpezet.antiope2.retrofitted.converter;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* @author Luc Pezet
*
*/
public class JacksonConverter implements Converter {
private ObjectMapper mObjectMapper;
public JacksonConverter() {
this( new ObjectMapper() );
}
public JacksonConverter(ObjectMapper pObjectMapper) {
mObjectMapper = pObjectMapper;
}
@Override
public Object deserialize(InputStream pBody, Type pType) throws IOException {
JavaType oJType = mObjectMapper.constructType( pType );
return mObjectMapper.readValue(pBody, oJType);
}
@Override
public InputStream serialize(Object pBody, Type pType) {
try {
return new ByteArrayInputStream( mObjectMapper.writeValueAsBytes( pBody ) );
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
}