X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=webservices%2Fcompbio%2Fws%2Fserver%2FRNAalifoldWS.java;h=ed94c23cdc071f3617cf1910dd5f87bdc8a0b3e5;hb=184bf3dce9500c599b5257140ec49edd80f8cea1;hp=83d7c93ec45f2a59112adc2a559e3779689ca221;hpb=a966c1a63f4365f34a0567514dee6d1bc4d3af91;p=jabaws.git diff --git a/webservices/compbio/ws/server/RNAalifoldWS.java b/webservices/compbio/ws/server/RNAalifoldWS.java index 83d7c93..ed94c23 100644 --- a/webservices/compbio/ws/server/RNAalifoldWS.java +++ b/webservices/compbio/ws/server/RNAalifoldWS.java @@ -1,130 +1,70 @@ -package compbio.ws.server; - -import java.io.File; -import java.util.List; - -import javax.jws.WebParam; -import javax.jws.WebService; - -import org.apache.log4j.Logger; - -import compbio.data.msa.JABAService; -import compbio.data.msa.JManagement; -import compbio.data.msa.Metadata; -import compbio.data.msa.MsaWS; -import compbio.data.sequence.Alignment; -import compbio.data.sequence.FastaSequence; -import compbio.engine.AsyncExecutor; -import compbio.engine.Configurator; -import compbio.engine.client.ConfiguredExecutable; -import compbio.engine.client.SkeletalExecutable; -import compbio.metadata.ChunkHolder; -import compbio.metadata.JobStatus; -import compbio.metadata.JobSubmissionException; -import compbio.metadata.Limit; -import compbio.metadata.LimitsManager; -import compbio.metadata.Option; -import compbio.metadata.Preset; -import compbio.metadata.PresetManager; -import compbio.metadata.ResultNotAvailableException; -import compbio.metadata.RunnerConfig; -import compbio.metadata.WrongParameterException; -import compbio.runner.Util; -import compbio.runner.msa.ClustalW; -import compbio.runner.structure.RNAalifold; - -@WebService(targetNamespace = JABAService.SERVICE_NAMESPACE, serviceName = "RNAalifoldWS") -public class RNAalifoldWS implements JABAService, JManagement, Metadata { - - private static Logger log = Logger.getLogger(ClustalWS.class); - - private static final RunnerConfig rnaalifoldOptions = Util. - getSupportedOptions(RNAalifold.class); - - private static final PresetManager rnaalifoldPresets = Util - .getPresets(RNAalifold.class); - - private static final LimitsManager limitMan = compbio.engine.client.Util - .getLimits(new RNAalifold().getType()); - - //public String fold() - - - ConfiguredExecutable init() throws JobSubmissionException { - RNAalifold rnaalifold = new RNAalifold(); - rnaalifold.setInput(SkeletalExecutable.INPUT) - .setOutput(SkeletalExecutable.OUTPUT) - .setError(SkeletalExecutable.ERROR); - ConfiguredExecutable confRNAalifold = Configurator - .configureExecutable(rnaalifold); - return confRNAalifold; - } - - @Override - public RunnerConfig getRunnerOptions() { - return rnaalifoldOptions; - } - - @SuppressWarnings("unchecked") - public String getResult(@WebParam(name = "jobId") String jobId) throws ResultNotAvailableException { - - WSUtil.validateJobId(jobId); - AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId); - ConfiguredExecutable rnaalifold = (ConfiguredExecutable) asyncEngine - .getResults(jobId); - return rnaalifold.getResults(); - } - - @Override - public boolean cancelJob(String jobId) { - WSUtil.validateJobId(jobId); - boolean result = WSUtil.cancelJob(jobId); - return result; - } - - @Override - public JobStatus getJobStatus(String jobId) { - WSUtil.validateJobId(jobId); - JobStatus status = WSUtil.getJobStatus(jobId); - return status; - } - - @Override - public Limit getLimit(String presetName) { - if (limitMan == null) { - // No limit is configured - return null; - } - Limit limit = limitMan.getLimitByName(presetName); - return limit; - } - - @Override - public LimitsManager getLimits() { - return limitMan; - } - - @Override - // PlaceHolder - public PresetManager getPresets() { - if (rnaalifoldPresets == null) { - // No presets are configured - return null; - } - return rnaalifoldPresets; - } - - @Override - // PlaceHolder - public ChunkHolder pullExecStatistics(String jobId, long position) { - -// WSUtil.validateJobId(jobId); -// String file = Configurator.getWorkDirectory(jobId) + File.separator -// + RNAalifold.getStatFile(); -// ChunkHolder cholder = WSUtil.pullFile(file, position); -// return cholder; - return new ChunkHolder("", -1); - } -} - - +package compbio.ws.server; + +import java.util.List; + +import javax.jws.WebService; + +import org.apache.log4j.Logger; + +import compbio.data.msa.JABAService; +import compbio.data.msa.SequenceAnnotation; +import compbio.data.sequence.FastaSequence; +import compbio.engine.client.ConfiguredExecutable; +import compbio.metadata.JobSubmissionException; +import compbio.metadata.LimitExceededException; +import compbio.metadata.Option; +import compbio.metadata.Preset; +import compbio.metadata.UnsupportedRuntimeException; +import compbio.metadata.WrongParameterException; +import compbio.runner.conservation.AACon; +import compbio.runner.structure.RNAalifold; + +@WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = JABAService.V2_SERVICE_NAMESPACE, serviceName = "RNAalifoldWS") +public class RNAalifoldWS extends SequenceAnnotationService implements SequenceAnnotation { + + private static Logger log = Logger.getLogger(RNAalifoldWS.class); + + public RNAalifoldWS() { + super (new RNAalifold(), log); + } + + // Only purpose is to replace "analize" with "fold" method + // so that a clustal input file and not fasta will be generated + @SuppressWarnings("unchecked") + @Override + public String analize(List sequences) + throws UnsupportedRuntimeException, LimitExceededException, + JobSubmissionException { + WSUtil.validateFastaInput(sequences); + ConfiguredExecutable confRNAalifold = init(sequences); + return WSUtil.fold(sequences, confRNAalifold, log, "analize", getLimit("")); + } + + // Only purpose is to replace "analize" with "fold" method + // so that a clustal input file and not fasta will be generated + @SuppressWarnings("unchecked") + @Override + public String customAnalize(List sequences, + List> options) throws UnsupportedRuntimeException, + LimitExceededException, JobSubmissionException, + WrongParameterException { + WSUtil.validateFastaInput(sequences); + ConfiguredExecutable confRNAalifold = init(sequences); + List params = WSUtil.getCommands(options, RNAalifold.KEY_VALUE_SEPARATOR); + confRNAalifold.addParameters(params); + return WSUtil.fold(sequences, confRNAalifold, log, "customAnalize", getLimit("")); + } + + + /* + * No presets are supported, thus the result of this call will be as simple + * call to analize without parameters + */ + @Override + public String presetAnalize(List sequences, + Preset preset) throws UnsupportedRuntimeException, + LimitExceededException, JobSubmissionException, + WrongParameterException { + return analize(sequences); + } +}