From abafb63247a48540fcbf5b2927b9ed3b7443404f Mon Sep 17 00:00:00 2001 From: jprocter Date: Wed, 15 Dec 2010 14:53:25 +0000 Subject: [PATCH] allow client to check if the original alignment data was annotated by results from service --- src/jalview/ws/rest/HttpResultSet.java | 6 ++++++ src/jalview/ws/rest/RestJob.java | 24 +++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/jalview/ws/rest/HttpResultSet.java b/src/jalview/ws/rest/HttpResultSet.java index 5a70211..1c87196 100644 --- a/src/jalview/ws/rest/HttpResultSet.java +++ b/src/jalview/ws/rest/HttpResultSet.java @@ -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 dp = new ArrayList(); diff --git a/src/jalview/ws/rest/RestJob.java b/src/jalview/ws/rest/RestJob.java index 80f4ac6..7987cab 100644 --- a/src/jalview/ws/rest/RestJob.java +++ b/src/jalview/ws/rest/RestJob.java @@ -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(); } } -- 1.7.10.2