JAL-3066 debug info: check response when adding features and annotation
[jalview.git] / src / jalview / ws / slivkaws / SlivkaAnnotationServiceInstance.java
index 184ca2d..3a5899b 100644 (file)
@@ -1,15 +1,20 @@
 package jalview.ws.slivkaws;
 
 import jalview.api.FeatureColourI;
+import jalview.bin.Cache;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.SequenceI;
 import jalview.datamodel.features.FeatureMatcherSetI;
 import jalview.io.AnnotationFile;
+import jalview.io.DataSourceType;
+import jalview.io.FeaturesFile;
+import jalview.util.MessageManager;
 import jalview.ws.api.JobId;
 import jalview.ws.api.SequenceAnnotationServiceI;
 import jalview.ws.params.ArgumentI;
 import jalview.ws.params.WsParamSetI;
+import jalview.ws.uimodel.AlignAnalysisUIText;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
@@ -30,9 +35,22 @@ import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
 
 public class SlivkaAnnotationServiceInstance extends SlivkaWSInstance implements SequenceAnnotationServiceI
 {
-  public SlivkaAnnotationServiceInstance(SlivkaClient client, SlivkaService service)
+  public SlivkaAnnotationServiceInstance(SlivkaClient client,
+          SlivkaService service, boolean conservation)
   {
-    super(client, service, "Annotations disorder");
+    super(client, service, !conservation ? "Annotations disorder"
+            : "Alignment Conservation");
+    if (conservation)
+    {
+      setAlignAnalysisUI(new AlignAnalysisUIText(service.getName(),
+              SlivkaAnnotationServiceInstance.class,
+              "Slivka.AACons", false, true, true, true, true, 2,
+              MessageManager.getString("label.aacon_calculations"),
+              MessageManager.getString("tooltip.aacon_calculations"),
+              MessageManager.getString("label.aacon_settings"),
+              MessageManager.getString("tooltip.aacon_settings")));
+    }
+    style = ServiceClient.SEQUENCEANNOTATIONWSCLIENT;
   }
 
   @Override
@@ -99,9 +117,19 @@ public class SlivkaAnnotationServiceInstance extends SlivkaWSInstance implements
       throw new IOError(e);
     }
     Alignment aln = new Alignment(seqs.toArray(new SequenceI[0]));
-    BufferedReader in = new BufferedReader(new InputStreamReader(annotFile.getContent()));
-    AnnotationFile f = new AnnotationFile();
-    f.parseAnnotationFrom(aln, null, in);
+    BufferedReader readerIn = new BufferedReader(new InputStreamReader(annotFile.getContent()));
+    if (!new AnnotationFile().parseAnnotationFrom(aln, null, readerIn))
+    {
+      Cache.log.debug("No annotation from slivka job\n" + annotFile);
+    }
+    if (featFile != null)
+    {
+      if (!new FeaturesFile(featFile.getURL().toString(),
+              DataSourceType.URL).parse(aln, featureColours, true))
+      {
+        Cache.log.debug("No features from slivka job\n" + featFile);
+      }
+    }
     return Arrays.asList(aln.getAlignmentAnnotation());
   }
 }