package sagan.support.github;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Collections;
import java.util.List;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.util.StreamUtils;
public class JsonStringConverter implements HttpMessageConverter<String> {
public List<MediaType> getSupportedMediaTypes() {
return Collections.singletonList(new MediaType("application", "json"));
}
@Override
public String read(Class<? extends String> clazz, HttpInputMessage inputMessage) throws IOException,
HttpMessageNotReadableException {
return StreamUtils.copyToString(inputMessage.getBody(), Charset.forName("UTF-8"));
}
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
return String.class.equals(clazz);
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
return false;
}
@Override
public void write(String string, MediaType contentType, HttpOutputMessage outputMessage) throws IOException,
HttpMessageNotWritableException {
throw new UnsupportedOperationException("can't write");
}
}