package io.muoncore.codec.json;
import com.google.gson.Gson;
import io.muoncore.codec.Codecs;
import io.muoncore.codec.MuonCodec;
import io.muoncore.exception.MuonException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Type;
public class GsonCodec implements MuonCodec {
private Gson gson = new Gson();
@Override
public <T> T decode(byte[] encodedData, Type type) {
try {
return gson.fromJson(new String(encodedData, "UTF8"), type);
} catch (UnsupportedEncodingException e) {
throw new MuonException("Unable to read byte array", e);
}
}
@Override
public byte[] encode(Object data) throws UnsupportedEncodingException {
return gson.toJson(data).getBytes("UTF8");
}
@Override
public String getContentType() {
return "application/json";
}
@Override
public boolean hasSchemasFor(Class type) {
return false;
}
@Override
public Codecs.SchemaInfo getSchemaInfoFor(Class type) {
return null;
}
@Override
public boolean canEncode(Class type) {
return true;
}
}