Reverted some testing changes in TestRNAalifoldWS so that it will run
[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         \r
44         // Only purpose of Overrides is to replace "analize" with "fold" method \r
45         // so that a clustal input file and not fasta will be generated\r
46         @Override\r
47         public String analize(List<FastaSequence> sequences)\r
48                         throws UnsupportedRuntimeException, LimitExceededException,\r
49                         JobSubmissionException {\r
50                 WSUtil.validateFastaInput(sequences);\r
51                 ConfiguredExecutable<RNAalifoldWS> confRNAalifold = init(sequences);\r
52                 return WSUtil.fold(sequences, confRNAalifold, log, "analize",\r
53                                 getLimit(""));\r
54         }\r
55 \r
56         // Only purpose of Overrides is to replace "analize" with "fold" method \r
57                 // so that a clustal input file and not fasta will be generated\r
58         @Override\r
59         public String customAnalize(List<FastaSequence> sequences,\r
60                         List<Option<RNAalifold>> options) throws UnsupportedRuntimeException,\r
61                         LimitExceededException, JobSubmissionException,\r
62                         WrongParameterException {\r
63                 WSUtil.validateFastaInput(sequences);\r
64                 ConfiguredExecutable<RNAalifold> confRNAalifold = init(sequences);\r
65                 \r
66                 List<String> params = WSUtil.getCommands(options,\r
67                                 AACon.KEY_VALUE_SEPARATOR);\r
68                 confRNAalifold.addParameters(params);\r
69                 return WSUtil.fold(sequences, confRNAalifold, log, "customAnalize",\r
70                                 getLimit(""));\r
71         }\r
72         \r
73         \r
74         /*\r
75          * No presets are supported, thus the result of this call will be as simple\r
76          * call to analize without parameters\r
77          */\r
78         @Override\r
79         public String presetAnalize(List<FastaSequence> sequences,\r
80                         Preset<RNAalifold> preset) throws UnsupportedRuntimeException,\r
81                         LimitExceededException, JobSubmissionException,\r
82                         WrongParameterException {\r
83 \r
84                 return analize(sequences);\r
85         }\r
86 }\r
87         \r
88         \r