Change the way to deal with Limits to simplify wrapper writing and enable couping...
[jabaws.git] / webservices / compbio / ws / server / JronnWS.java
index 9f5be63..b7a8f43 100644 (file)
@@ -1,7 +1,6 @@
 package compbio.ws.server;\r
 \r
 import java.io.File;\r
-import java.util.HashSet;\r
 import java.util.List;\r
 \r
 import javax.annotation.Resource;\r
@@ -10,9 +9,9 @@ import javax.xml.ws.WebServiceContext;
 \r
 import org.apache.log4j.Logger;\r
 \r
-import compbio.data.msa.Annotation;\r
+import compbio.data.msa.SequenceAnnotation;\r
 import compbio.data.sequence.FastaSequence;\r
-import compbio.data.sequence.Score;\r
+import compbio.data.sequence.ScoreManager;\r
 import compbio.engine.AsyncExecutor;\r
 import compbio.engine.Configurator;\r
 import compbio.engine.client.ConfiguredExecutable;\r
@@ -33,8 +32,8 @@ import compbio.runner.Util;
 import compbio.runner.conservation.AACon;\r
 import compbio.runner.disorder.Jronn;\r
 \r
-@WebService(endpointInterface = "compbio.data.msa.Annotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "JronnWS")\r
-public class JronnWS implements Annotation<Jronn> {\r
+@WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "JronnWS")\r
+public class JronnWS implements SequenceAnnotation<Jronn> {\r
 \r
        // Ask for resource injection\r
        @Resource\r
@@ -44,39 +43,45 @@ public class JronnWS implements Annotation<Jronn> {
 \r
        private static Logger log = Logger.getLogger(JronnWS.class);\r
 \r
-       private static final RunnerConfig<Jronn> aaconOptions = Util\r
+       private static final RunnerConfig<Jronn> jronnOptions = Util\r
                        .getSupportedOptions(Jronn.class);\r
 \r
-       private static final PresetManager<Jronn> aaconPresets = Util\r
+       private static final PresetManager<Jronn> jronnPresets = Util\r
                        .getPresets(Jronn.class);\r
 \r
+       private static final LimitsManager<Jronn> limitMan = compbio.runner.Util\r
+                       .getLimits(new Jronn().getType());\r
+\r
        ConfiguredExecutable<Jronn> init(List<FastaSequence> sequences)\r
                        throws JobSubmissionException {\r
                Jronn jronn = new Jronn();\r
-               jronn.setInput("fasta.in").setOutput("aacon.out");\r
+               jronn.setInput("fasta.in").setOutput("jronn.out");\r
                return Configurator.configureExecutable(jronn, sequences);\r
        }\r
 \r
        @Override\r
-       public HashSet<Score> getAnnotation(String jobId)\r
+       public ScoreManager getAnnotation(String jobId)\r
                        throws ResultNotAvailableException {\r
                WSUtil.validateJobId(jobId);\r
                AsyncExecutor asyncEngine = Configurator.getAsyncEngine(jobId);\r
-               ConfiguredExecutable<AACon> aacon = (ConfiguredExecutable<AACon>) asyncEngine\r
+               ConfiguredExecutable<Jronn> jronn = (ConfiguredExecutable<Jronn>) asyncEngine\r
                                .getResults(jobId);\r
-               HashSet<Score> mas = aacon.getResults();\r
+               ScoreManager mas = jronn.getResults();\r
                log.trace(jobId + " getConservation : " + mas);\r
                return mas;\r
        }\r
 \r
        @Override\r
        public Limit<Jronn> getLimit(String presetName) {\r
-               return new Jronn().getLimit(presetName);\r
+               if (limitMan == null) {\r
+                       return null;\r
+               }\r
+               return limitMan.getLimitByName(presetName);\r
        }\r
 \r
        @Override\r
        public LimitsManager<Jronn> getLimits() {\r
-               return new Jronn().getLimits();\r
+               return limitMan;\r
        }\r
 \r
        @Override\r
@@ -101,12 +106,12 @@ public class JronnWS implements Annotation<Jronn> {
 \r
        @Override\r
        public PresetManager<Jronn> getPresets() {\r
-               return aaconPresets;\r
+               return jronnPresets;\r
        }\r
 \r
        @Override\r
        public RunnerConfig<Jronn> getRunnerOptions() {\r
-               return aaconOptions;\r
+               return jronnOptions;\r
        }\r
 \r
        String analize(List<FastaSequence> sequences,\r
@@ -127,10 +132,9 @@ public class JronnWS implements Annotation<Jronn> {
                        throws UnsupportedRuntimeException, LimitExceededException,\r
                        JobSubmissionException {\r
                WSUtil.validateFastaInput(sequences);\r
-               ConfiguredExecutable<Jronn> confAAcon = init(sequences);\r
+               ConfiguredExecutable<Jronn> confJronn = init(sequences);\r
 \r
-               // set default conservation method to fastest - SHENKIN\r
-               return analize(sequences, confAAcon, null, "analize", getLimit(""));\r
+               return analize(sequences, confJronn, null, "analize", getLimit(""));\r
        }\r
 \r
        @Override\r
@@ -140,9 +144,7 @@ public class JronnWS implements Annotation<Jronn> {
                        WrongParameterException {\r
                WSUtil.validateFastaInput(sequences);\r
                ConfiguredExecutable<Jronn> confJronn = init(sequences);\r
-               // Could not do that! Space separated values\r
-               // will all be treated as keys! thus duplicates removed\r
-               // String params = cbuilder.getCommand();\r
+\r
                List<String> params = WSUtil.getCommands(options,\r
                                AACon.KEY_VALUE_SEPARATOR);\r
                confJronn.addParameters(params);\r