allow client to check if the original alignment data was annotated by results from...
authorjprocter <Jim Procter>
Wed, 15 Dec 2010 14:53:25 +0000 (14:53 +0000)
committerjprocter <Jim Procter>
Wed, 15 Dec 2010 14:53:25 +0000 (14:53 +0000)
src/jalview/ws/rest/HttpResultSet.java
src/jalview/ws/rest/RestJob.java

index 5a70211..1c87196 100644 (file)
@@ -77,6 +77,12 @@ public class HttpResultSet extends FileParse
     return dp;
   }
 
+  /**
+   * parses the results of the service output.
+   * @return the result of ParsePackedSet.getAlignment()
+   * @throws Exception
+   * @throws Error
+   */
   public Object[] parseResultSet() throws Exception, Error
   {
     List<DataProvider> dp = new ArrayList<DataProvider>();
index 80f4ac6..7987cab 100644 (file)
@@ -1,6 +1,7 @@
 package jalview.ws.rest;
 
 import java.io.IOException;
+import java.sql.ResultSet;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Hashtable;
@@ -135,7 +136,7 @@ public class RestJob extends AWsJob
   @Override
   public boolean hasResults()
   {
-    return gotresult;
+    return gotresult && (parsedResults ? validJvresults : true);
   }
 
   @Override
@@ -384,16 +385,29 @@ public class RestJob extends AWsJob
    * context used to parse results from service
    */
   JalviewDataset context = null;
-
+  protected boolean parsedResults = false;
+  protected boolean validJvresults=false;
   Object[] jvresultobj = null;
-
   /**
    * process the results obtained from the server into jalview datamodel objects
-   * ready to be merged/added to the users' view.
+   * ready to be merged/added to the users' view. Use hasResults to test if results were added to context. 
    */
   public void parseResultSet() throws Exception, Error
   {
-    jvresultobj = resSet.parseResultSet();
+    if (!parsedResults) {
+      parsedResults=true;
+      jvresultobj = resSet.parseResultSet();
+      validJvresults = true;
+    }
+  }
+
+  /**
+   * 
+   * @return true if job has an input alignment and it was annotated when results were parsed
+   */
+  public boolean isInputContextModified()
+  {
+    return contextAl!=null && validJvresults && context.getAl().get(0).isModified();
   }
 
 }