@@ -0,0 +1,1586 @@
+package uk.ac.ebi.quickgo.annotation.download.http;%0A%0Aimport uk.ac.ebi.quickgo.annotation.model.Annotation;%0Aimport uk.ac.ebi.quickgo.rest.search.results.QueryResult;%0A%0Aimport java.io.IOException;%0Aimport java.io.OutputStream;%0Aimport org.springframework.http.HttpInputMessage;%0Aimport org.springframework.http.HttpOutputMessage;%0Aimport org.springframework.http.MediaType;%0Aimport org.springframework.http.converter.AbstractHttpMessageConverter;%0Aimport org.springframework.http.converter.HttpMessageNotReadableException;%0Aimport org.springframework.http.converter.HttpMessageNotWritableException;%0A%0A/**%0A * GAF message converter that writes a stream of %7B@link QueryResult%7D containing %7B@link Annotation%7D instances,%0A * to a response's output stream.%0A *%0A * Created 19/01/17%0A * @author Edd%0A */%0Apublic class HttpMessageConverter extends AbstractHttpMessageConverter%3CObject%3E %7B%0A%0A    private final DispatchWriter helper;%0A%0A    public HttpMessageConverter(DispatchWriter helper, MediaType mediaType) %7B%0A        super(mediaType);%0A        this.helper = helper;%0A    %7D%0A    @Override protected boolean supports(Class%3C?%3E clazz) %7B%0A        return true;%0A    %7D%0A%0A    @Override protected Object readInternal(Class%3C?%3E clazz, HttpInputMessage inputMessage)%0A            throws IOException, HttpMessageNotReadableException %7B%0A        return null;%0A    %7D%0A%0A    @Override protected void writeInternal(Object downloadPackage, HttpOutputMessage outputMessage)%0A            throws IOException, HttpMessageNotWritableException %7B%0A        OutputStream out = outputMessage.getBody();%0A        helper.write(downloadPackage, out);%0A    %7D%0A%7D%0A

Replace gaf, tsv and gpad specific versions with this generic version.