X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Frest%2Fparams%2FAnnotationFile.java;fp=src%2Fjalview%2Fws%2Frest%2Fparams%2FAnnotationFile.java;h=84dcfb951c6f18336e6e96999929e6efb5399bcc;hb=c762d9525db36ffd5d3fca49fb5e7d506d13401a;hp=0000000000000000000000000000000000000000;hpb=f2c8e788b0c86c77ac4e62f6f6e2da13fdf43fc0;p=jalview.git diff --git a/src/jalview/ws/rest/params/AnnotationFile.java b/src/jalview/ws/rest/params/AnnotationFile.java new file mode 100644 index 0000000..84dcfb9 --- /dev/null +++ b/src/jalview/ws/rest/params/AnnotationFile.java @@ -0,0 +1,52 @@ +package jalview.ws.rest.params; + +import jalview.datamodel.AlignmentI; +import jalview.ws.rest.InputType; +import jalview.ws.rest.NoValidInputDataException; +import jalview.ws.rest.RestJob; +import jalview.ws.rest.InputType.molType; + +import java.io.UnsupportedEncodingException; + +import org.apache.http.entity.mime.content.ContentBody; +import org.apache.http.entity.mime.content.StringBody; + +/** + * format a jalview annotation file for input to a rest service. + * @author JimP + * + */ +public class AnnotationFile extends InputType { + public AnnotationFile() + { + super(new Class[] { AlignmentI.class} ); + } + /** + * standard jalview annotation file + */ + final String JVANNOT="JalviewAnnotation"; + /** + * export annotation row as simple csv + */ + final String CSVANNOT="CsvAnnotationRow"; + /** + * format of annotation file + */ + String format=JVANNOT; + // TODO verify annotation file format enumeration + @Override + public ContentBody formatForInput(RestJob rj) throws UnsupportedEncodingException, NoValidInputDataException + { + AlignmentI al = rj.getAlignmentForInput(token,molType.MIX); + if (format.equals(JVANNOT)) + {return new StringBody(new jalview.io.AnnotationFile().printAnnotations(al.getAlignmentAnnotation(), + al.getGroups(),al.getProperties())); + } else { + if (!format.equals(CSVANNOT)) + { + throw new UnsupportedEncodingException("Unrecognised format for exporting Annotation ("+format+")"); + } + return new StringBody(new jalview.io.AnnotationFile().printCSVAnnotations(al.getAlignmentAnnotation())); + } + } +} \ No newline at end of file