1 package compbio.ws.server;
6 import javax.jws.WebParam;
7 import javax.jws.WebService;
9 import org.apache.log4j.Logger;
11 import compbio.data.msa.JABAService;
12 import compbio.data.msa.JManagement;
13 import compbio.data.msa.Metadata;
14 import compbio.data.msa.MsaWS;
15 import compbio.data.sequence.Alignment;
16 import compbio.data.sequence.FastaSequence;
17 import compbio.engine.AsyncExecutor;
18 import compbio.engine.Configurator;
19 import compbio.engine.client.ConfiguredExecutable;
20 import compbio.engine.client.SkeletalExecutable;
21 import compbio.metadata.ChunkHolder;
22 import compbio.metadata.JobStatus;
23 import compbio.metadata.JobSubmissionException;
24 import compbio.metadata.Limit;
25 import compbio.metadata.LimitsManager;
26 import compbio.metadata.Option;
27 import compbio.metadata.Preset;
28 import compbio.metadata.PresetManager;
29 import compbio.metadata.ResultNotAvailableException;
30 import compbio.metadata.RunnerConfig;
31 import compbio.metadata.WrongParameterException;
32 import compbio.runner.Util;
33 import compbio.runner.msa.ClustalW;
34 import compbio.runner.structure.RNAalifold;
36 @WebService(targetNamespace = JABAService.SERVICE_NAMESPACE, serviceName = "RNAalifoldWS")
37 public class RNAalifoldWS implements JABAService, JManagement, Metadata<RNAalifold> {
39 private static Logger log = Logger.getLogger(ClustalWS.class);
41 private static final RunnerConfig<RNAalifold> rnaalifoldOptions = Util.
42 getSupportedOptions(RNAalifold.class);
44 private static final PresetManager<RNAalifold> rnaalifoldPresets = Util
45 .getPresets(RNAalifold.class);
47 private static final LimitsManager<RNAalifold> limitMan = compbio.engine.client.Util
48 .getLimits(new RNAalifold().getType());
50 //public String fold()
53 ConfiguredExecutable<RNAalifold> init() throws JobSubmissionException {
54 RNAalifold rnaalifold = new RNAalifold();
55 rnaalifold.setInput(SkeletalExecutable.INPUT)
56 .setOutput(SkeletalExecutable.OUTPUT)
57 .setError(SkeletalExecutable.ERROR);
58 ConfiguredExecutable<RNAalifold> confRNAalifold = Configurator
59 .configureExecutable(rnaalifold);
60 return confRNAalifold;
64 public RunnerConfig<RNAalifold> getRunnerOptions() {
65 return rnaalifoldOptions;
68 @SuppressWarnings("unchecked")
69 public String getResult(@WebParam(name = "jobId") String jobId) throws ResultNotAvailableException {
71 WSUtil.validateJobId(jobId);
72 AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);
73 ConfiguredExecutable<RNAalifold> rnaalifold = (ConfiguredExecutable<RNAalifold>) asyncEngine
75 return rnaalifold.getResults();
79 public boolean cancelJob(String jobId) {
80 WSUtil.validateJobId(jobId);
81 boolean result = WSUtil.cancelJob(jobId);
86 public JobStatus getJobStatus(String jobId) {
87 WSUtil.validateJobId(jobId);
88 JobStatus status = WSUtil.getJobStatus(jobId);
93 public Limit<RNAalifold> getLimit(String presetName) {
94 if (limitMan == null) {
95 // No limit is configured
98 Limit<RNAalifold> limit = limitMan.getLimitByName(presetName);
103 public LimitsManager<RNAalifold> getLimits() {
109 public PresetManager<RNAalifold> getPresets() {
110 if (rnaalifoldPresets == null) {
111 // No presets are configured
114 return rnaalifoldPresets;
119 public ChunkHolder pullExecStatistics(String jobId, long position) {
121 // WSUtil.validateJobId(jobId);
122 // String file = Configurator.getWorkDirectory(jobId) + File.separator
123 // + RNAalifold.getStatFile();
124 // ChunkHolder cholder = WSUtil.pullFile(file, position);
126 return new ChunkHolder("", -1);