Change the way to deal with Limits to simplify wrapper writing and enable couping...
[jabaws.git] / webservices / compbio / ws / server / AAConWS.java
index e77c878..8637af1 100644 (file)
@@ -11,9 +11,10 @@ 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 +34,8 @@ import compbio.metadata.WrongParameterException;
 import compbio.runner.Util;\r
 import compbio.runner.conservation.AACon;\r
 \r
-@WebService(endpointInterface = "compbio.data.msa.Annotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "AAConWS")\r
-public class AAConWS implements Annotation<AACon> {\r
+@WebService(endpointInterface = "compbio.data.msa.SequenceAnnotation", targetNamespace = "http://msa.data.compbio/01/12/2010/", serviceName = "AAConWS")\r
+public class AAConWS implements SequenceAnnotation<AACon> {\r
 \r
        // Ask for resource injection\r
        @Resource\r
@@ -50,6 +51,9 @@ public class AAConWS implements Annotation<AACon> {
        private static final PresetManager<AACon> aaconPresets = Util\r
                        .getPresets(AACon.class);\r
 \r
+       private static final LimitsManager<AACon> limitMan = compbio.runner.Util\r
+                       .getLimits(new AACon().getType());\r
+\r
        ConfiguredExecutable<AACon> init(List<FastaSequence> sequences)\r
                        throws JobSubmissionException {\r
                AACon aacon = new AACon();\r
@@ -58,15 +62,18 @@ public class AAConWS implements Annotation<AACon> {
        }\r
 \r
        @Override\r
-       public HashSet<Score> getConservation(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
                                .getResults(jobId);\r
                HashSet<Score> mas = aacon.getResults();\r
+               // ScoreManager result = new HashMap<String, HashSet<Score>>();\r
+               // result.put("Alignment", mas);\r
                log.trace(jobId + " getConservation : " + mas);\r
-               return mas;\r
+               // FIXME\r
+               return null;\r
        }\r
        /*\r
         * @SuppressWarnings("unchecked") public JalviewAnnotation\r
@@ -77,12 +84,16 @@ public class AAConWS implements Annotation<AACon> {
 \r
        @Override\r
        public Limit<AACon> getLimit(String presetName) {\r
-               return new AACon().getLimit(presetName);\r
+               if (limitMan == null) {\r
+                       // Limit is not defined\r
+                       return null;\r
+               }\r
+               return limitMan.getLimitByName(presetName);\r
        }\r
 \r
        @Override\r
        public LimitsManager<AACon> getLimits() {\r
-               return new AACon().getLimits();\r
+               return limitMan;\r
        }\r
 \r
        @Override\r