RNAStruct replaced by RNAStructScoreManager. Why does webservice
[jabaws.git] / webservices / compbio / ws / server / RNAalifoldWS.java
1 package compbio.ws.server;\r
2 \r
3 import java.util.List;\r
4 \r
5 import javax.jws.WebService;\r
6 \r
7 import org.apache.log4j.Logger;\r
8 \r
9 import compbio.data.msa.JABAService;\r
10 import compbio.data.msa.SequenceAnnotation;\r
11 import compbio.data.sequence.FastaSequence;\r
12 import compbio.data.sequence.RNAStructScoreManager;\r
13 import compbio.engine.client.ConfiguredExecutable;\r
14 import compbio.metadata.JobSubmissionException;\r
15 import compbio.metadata.LimitExceededException;\r
16 import compbio.metadata.Option;\r
17 import compbio.metadata.Preset;\r
18 import compbio.metadata.ResultNotAvailableException;\r
19 import compbio.metadata.UnsupportedRuntimeException;\r
20 import compbio.metadata.WrongParameterException;\r
21 import compbio.runner.conservation.AACon;\r
22 import compbio.runner.structure.RNAalifold;\r
23 \r
24 @WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = JABAService.V2_SERVICE_NAMESPACE, serviceName = "RNAalifoldWS")\r
25 public class RNAalifoldWS extends SequenceAnnotationService<RNAalifold> \r
26                 implements\r
27                         SequenceAnnotation<RNAalifold> {\r
28 \r
29         private static Logger log = Logger.getLogger(RNAalifoldWS.class);\r
30         \r
31         public RNAalifoldWS() {\r
32                 super (new RNAalifold(), log);\r
33         }\r
34 \r
35         \r
36         // for testing\r
37         @Override\r
38         public RNAStructScoreManager getAnnotation(String jobId) \r
39                         throws ResultNotAvailableException {\r
40                 return WSUtil.getAnnotation(jobId, log);\r
41         }\r
42         \r
43         @Override\r
44         public String analize(List<FastaSequence> sequences)\r
45                         throws UnsupportedRuntimeException, LimitExceededException,\r
46                         JobSubmissionException {\r
47                 WSUtil.validateFastaInput(sequences);\r
48                 ConfiguredExecutable<RNAalifoldWS> confRNAalifold = init(sequences);\r
49                 return WSUtil.fold(sequences, confRNAalifold, log, "analize",\r
50                                 getLimit(""));\r
51         }\r
52 \r
53         @Override\r
54         public String customAnalize(List<FastaSequence> sequences,\r
55                         List<Option<RNAalifold>> options) throws UnsupportedRuntimeException,\r
56                         LimitExceededException, JobSubmissionException,\r
57                         WrongParameterException {\r
58                 WSUtil.validateFastaInput(sequences);\r
59                 ConfiguredExecutable<RNAalifold> confRNAalifold = init(sequences);\r
60                 \r
61                 List<String> params = WSUtil.getCommands(options,\r
62                                 AACon.KEY_VALUE_SEPARATOR);\r
63                 confRNAalifold.addParameters(params);\r
64                 return WSUtil.fold(sequences, confRNAalifold, log, "customAnalize",\r
65                                 getLimit(""));\r
66         }\r
67         \r
68         \r
69         /*\r
70          * No presets are supported, thus the result of this call will be as simple\r
71          * call to analize without parameters\r
72          */\r
73         @Override\r
74         public String presetAnalize(List<FastaSequence> sequences,\r
75                         Preset<RNAalifold> preset) throws UnsupportedRuntimeException,\r
76                         LimitExceededException, JobSubmissionException,\r
77                         WrongParameterException {\r
78 \r
79                 return analize(sequences);\r
80         }\r
81 }\r
82         \r
83         \r