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 MarkdownHtmlConverter implements HttpMessageConverter<MarkdownHtml> {
public List<MediaType> getSupportedMediaTypes() {
return Collections.singletonList(new MediaType("application", "vnd.github.v3.html+json"));
}
@Override
public MarkdownHtml read(Class<? extends MarkdownHtml> clazz, HttpInputMessage inputMessage) throws IOException,
HttpMessageNotReadableException {
return new MarkdownHtml(StreamUtils.copyToString(inputMessage.getBody(), Charset.forName("UTF-8")));
}
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
return MarkdownHtml.class.equals(clazz);
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
return false;
}
@Override
public void write(MarkdownHtml markdownHtml, MediaType contentType, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
throw new UnsupportedOperationException("can't write");
}
}