package jalview.ws.slivkaws;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOError;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.EnumMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceI;
import jalview.gui.WebserviceInfo;
+import jalview.io.DataSourceType;
import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.ws.api.JalviewServiceEndpointProviderI;
import jalview.ws.params.WsParamSetI;
import javajs.http.ClientProtocolException;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOError;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
import java.util.Collection;
-import java.util.EnumMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
import uk.ac.dundee.compbio.slivkaclient.Job;
import uk.ac.dundee.compbio.slivkaclient.JobRequest;
import uk.ac.dundee.compbio.slivkaclient.Parameter;
format = FileFormat.Fasta;
break;
}
- InputStream stream = new ByteArrayInputStream(
- fa.formatSequences(format, sequences.toArray(new SequenceI[0]))
+
+ // we avoid any use of Jalview's user facing export routines here
+
+ InputStream stream = new ByteArrayInputStream(format.getWriter(null)
+ .print(sequences.toArray(new SequenceI[0]), false)
.getBytes());
request.addFile(param.getId(), stream);
}
{
if (store == null)
{
- try
- {
- store = new SlivkaDatastore(service);
- } catch (IOException e)
- {
- throw new IOError(e);
- }
+ store = new SlivkaDatastore(service);
}
}
}
return store;
}
+
+ public static AlignmentI readAlignment(RemoteFile f) throws IOException
+ {
+ final var mimetype = f.getMediaType();
+ FileFormat format;
+ if (mimetype.equals("application/clustal"))
+ format = FileFormat.Clustal;
+ else if (mimetype.equals("application/fasta"))
+ format = FileFormat.Fasta;
+ else
+ return null;
+ return new FormatAdapter().readFile(f.getContentUrl().toString(),
+ DataSourceType.URL, format);
+ }
}