JAL-3070 set calcId and autocalculated flags for annotation returned by the service tasks/JAL-3070_wsinterfaces
authorJim Procter <jprocter@issues.jalview.org>
Thu, 10 Oct 2019 14:32:53 +0000 (15:32 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Thu, 10 Oct 2019 14:32:53 +0000 (15:32 +0100)
src/jalview/ws/jws2/SeqAnnotationServiceCalcWorker.java

index 661bdf7..81dfa30 100644 (file)
@@ -424,6 +424,24 @@ public class SeqAnnotationServiceCalcWorker extends AlignCalcWorker
         // sequence, excluding regions not annotated due to gapMap/column
         // visibility
 
+        // update calcId if it is not already set on returned annotation
+        if (returnedAnnot != null)
+        {
+          for (AlignmentAnnotation aa : returnedAnnot)
+          {
+            // assume that any CalcIds already set
+            if (getCalcId() != null && aa.getCalcId() == null
+                    || "".equals(aa.getCalcId()))
+            {
+              aa.setCalcId(getCalcId());
+            }
+            // autocalculated annotation are created by interactive alignment
+            // analysis services
+            aa.autoCalculated = service.isAlignmentAnalysis()
+                    && service.isInteractiveUpdate();
+          }
+        }
+
         running.setAnnotation(returnedAnnot);
 
         if (running.hasResults())