Add "safe type cast" warnings
[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.engine.client.ConfiguredExecutable;\r
13 import compbio.metadata.JobSubmissionException;\r
14 import compbio.metadata.LimitExceededException;\r
15 import compbio.metadata.Option;\r
16 import compbio.metadata.Preset;\r
17 import compbio.metadata.UnsupportedRuntimeException;\r
18 import compbio.metadata.WrongParameterException;\r
19 import compbio.runner.conservation.AACon;\r
20 import compbio.runner.structure.RNAalifold;\r
21 \r
22 @WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = JABAService.V2_SERVICE_NAMESPACE, serviceName = "RNAalifoldWS")\r
23 public class RNAalifoldWS extends SequenceAnnotationService<RNAalifold> implements SequenceAnnotation<RNAalifold> {\r
24 \r
25         private static Logger log = Logger.getLogger(RNAalifoldWS.class);\r
26         \r
27         public RNAalifoldWS() {\r
28                 super (new RNAalifold(), log);\r
29         }\r
30         \r
31         // Only purpose is to replace "analize" with "fold" method \r
32         // so that a clustal input file and not fasta will be generated\r
33         @SuppressWarnings("unchecked")\r
34         @Override\r
35         public String analize(List<FastaSequence> sequences)\r
36                         throws UnsupportedRuntimeException, LimitExceededException,\r
37                         JobSubmissionException {\r
38                 WSUtil.validateFastaInput(sequences);\r
39                 ConfiguredExecutable<RNAalifoldWS> confRNAalifold = init(sequences);\r
40                 return WSUtil.fold(sequences, confRNAalifold, log, "analize", getLimit(""));\r
41         }\r
42 \r
43         // Only purpose is to replace "analize" with "fold" method \r
44         // so that a clustal input file and not fasta will be generated\r
45         @SuppressWarnings("unchecked")\r
46         @Override\r
47         public String customAnalize(List<FastaSequence> sequences,\r
48                         List<Option<RNAalifold>> options) throws UnsupportedRuntimeException,\r
49                         LimitExceededException, JobSubmissionException,\r
50                         WrongParameterException {\r
51                 WSUtil.validateFastaInput(sequences);\r
52                 ConfiguredExecutable<RNAalifold> confRNAalifold = init(sequences);\r
53                 List<String> params = WSUtil.getCommands(options, RNAalifold.KEY_VALUE_SEPARATOR);\r
54                 confRNAalifold.addParameters(params);\r
55                 return WSUtil.fold(sequences, confRNAalifold, log, "customAnalize", getLimit(""));\r
56         }\r
57         \r
58         \r
59         /*\r
60          * No presets are supported, thus the result of this call will be as simple\r
61          * call to analize without parameters\r
62          */\r
63         @Override\r
64         public String presetAnalize(List<FastaSequence> sequences,\r
65                         Preset<RNAalifold> preset) throws UnsupportedRuntimeException,\r
66                         LimitExceededException, JobSubmissionException,\r
67                         WrongParameterException {\r
68                 return analize(sequences);\r
69         }\r
70 }\r