\r
import jalview.gui.*;\r
\r
-import org.apache.axis.client.*;\r
-\r
-import vamsas.objects.*;\r
-\r
-import java.awt.*;\r
-\r
import java.util.*;\r
\r
import javax.swing.*;\r
\r
-import javax.xml.namespace.QName;\r
\r
-\r
-public class MsaWSClient extends WSClient {\r
- /**\r
- * server is a WSDL2Java generated stub for an archetypal MsaWSI service.\r
+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
*/\r
+public class MsaWSClient extends WSClient\r
+{\r
+ /**\r
+ * server is a WSDL2Java generated stub for an archetypal MsaWSI service.\r
+ */\r
ext.vamsas.MuscleWS server;\r
\r
+ /**\r
+ * Creates a new MsaWSClient object.\r
+ *\r
+ * @param MsaWSName DOCUMENT ME!\r
+ * @param altitle DOCUMENT ME!\r
+ * @param msa DOCUMENT ME!\r
+ * @param submitGaps DOCUMENT ME!\r
+ * @param preserveOrder DOCUMENT ME!\r
+ */\r
public MsaWSClient(String MsaWSName, String altitle, SequenceI[] msa,\r
- boolean submitGaps, boolean preserveOrder) {\r
- if (setWebService(MsaWSName) == false) {\r
+ boolean submitGaps, boolean preserveOrder)\r
+ {\r
+ if (setWebService(MsaWSName) == false)\r
+ {\r
JOptionPane.showMessageDialog(Desktop.desktop,\r
"The Multiple Sequence Alignment Service named " + MsaWSName +\r
" is unknown", "Internal Jalview Error",\r
wsInfo = new jalview.gui.WebserviceInfo(WebServiceJobTitle,\r
WebServiceReference);\r
\r
- if (!locateWebService()) {\r
+ if (!locateWebService())\r
+ {\r
return;\r
}\r
\r
}\r
\r
// JBPNote Nasty object-global state setting methods shouldn't be allowed\r
- private boolean setWebService(String MsaWSName) {\r
- if (MsaWServices.info.containsKey(MsaWSName)) {\r
+ private boolean setWebService(String MsaWSName)\r
+ {\r
+ if (MsaWServices.info.containsKey(MsaWSName))\r
+ {\r
WebServiceName = MsaWSName;\r
\r
String[] wsinfo = (String[]) MsaWServices.info.get(MsaWSName);\r
WebServiceReference = wsinfo[2];\r
\r
return true;\r
- } else {\r
+ }\r
+ else\r
+ {\r
return false;\r
}\r
}\r
\r
- private boolean locateWebService() {\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ private boolean locateWebService()\r
+ {\r
// TODO: MuscleWS transmuted to generic MsaWS client\r
MuscleWSServiceLocator loc = new MuscleWSServiceLocator(); // Default\r
\r
- try {\r
+ try\r
+ {\r
this.server = (MuscleWS) loc.getMuscleWS(new java.net.URL(WsURL));\r
((MuscleWSSoapBindingStub) this.server).setTimeout(60000); // One minute timeout\r
- } catch (Exception ex) {\r
+ }\r
+ catch (Exception ex)\r
+ {\r
wsInfo.setProgressText("Serious! " + WebServiceName +\r
" Service location failed\nfor URL :" + WsURL + "\n" +\r
ex.getMessage());\r
return true;\r
}\r
\r
- protected class MsaWSThread extends Thread implements WSClientI {\r
+ protected class MsaWSThread extends Thread implements WSClientI\r
+ {\r
String ServiceName = WebServiceName;\r
String OutputHeader;\r
vamsas.objects.simple.MsaResult result = null;\r
boolean jobComplete = false;\r
\r
MsaWSThread(String title, SequenceI[] msa, boolean subgaps,\r
- boolean presorder) {\r
+ boolean presorder)\r
+ {\r
alTitle = title;\r
submitGaps = subgaps;\r
preserveOrder = presorder;\r
\r
vamsas.objects.simple.Sequence[] seqarray = new vamsas.objects.simple.Sequence[msa.length];\r
\r
- for (int i = 0; i < msa.length; i++) {\r
+ for (int i = 0; i < msa.length; i++)\r
+ {\r
String newname = jalview.analysis.SeqsetUtils.unique_name(i);\r
\r
// uniquify as we go\r
this.seqs.setSeqs(seqarray);\r
}\r
\r
- public boolean isCancellable() {\r
+ public boolean isCancellable()\r
+ {\r
return true;\r
}\r
\r
- public void cancelJob() {\r
- if ((jobId != null) && !jobId.equals("") && !jobComplete) {\r
+ public void cancelJob()\r
+ {\r
+ if ((jobId != null) && !jobId.equals("") && !jobComplete)\r
+ {\r
String cancelledMessage = "";\r
\r
- try {\r
+ try\r
+ {\r
vamsas.objects.simple.WsJobId cancelledJob = server.cancel(jobId);\r
\r
- if (cancelledJob.getStatus() == 2) {\r
+ if (cancelledJob.getStatus() == 2)\r
+ {\r
// CANCELLED_JOB\r
cancelledMessage = "Job cancelled.";\r
wsInfo.setStatus(WebserviceInfo.STATE_CANCELLED_OK);\r
jobComplete = true;\r
jobsRunning--;\r
result = null;\r
- } else if (cancelledJob.getStatus() == 3) {\r
+ }\r
+ else if (cancelledJob.getStatus() == 3)\r
+ {\r
// VALID UNSTOPPABLE JOB\r
cancelledMessage += "Server cannot cancel this job. just close the window.\n";\r
}\r
\r
- if (cancelledJob.getJobId() != null) {\r
+ if (cancelledJob.getJobId() != null)\r
+ {\r
cancelledMessage += ("[" + cancelledJob.getJobId() +\r
"]");\r
}\r
\r
cancelledMessage += "\n";\r
- } catch (Exception exc) {\r
+ }\r
+ catch (Exception exc)\r
+ {\r
cancelledMessage += ("\nProblems cancelling the job : Exception received...\n" +\r
exc + "\n");\r
exc.printStackTrace();\r
}\r
\r
wsInfo.setProgressText(OutputHeader + cancelledMessage + "\n");\r
- } else {\r
- if (!jobComplete) {\r
+ }\r
+ else\r
+ {\r
+ if (!jobComplete)\r
+ {\r
wsInfo.setProgressText(OutputHeader +\r
"Server cannot cancel this job because it has not been submitted properly. just close the window.\n");\r
}\r
}\r
}\r
\r
- public void run() {\r
+ public void run()\r
+ {\r
StartJob();\r
\r
- while (!jobComplete && (allowedServerExceptions > 0)) {\r
- try {\r
- if ((result = server.getResult(jobId)) == null) {\r
+ while (!jobComplete && (allowedServerExceptions > 0))\r
+ {\r
+ try\r
+ {\r
+ if ((result = server.getResult(jobId)) == null)\r
+ {\r
throw (new Exception(\r
"Timed out when communicating with server\nTry again later.\n"));\r
}\r
\r
- if (result.isRunning()) {\r
+ if (result.isRunning())\r
+ {\r
wsInfo.setStatus(WebserviceInfo.STATE_RUNNING);\r
- } else if (result.isQueued()) {\r
+ }\r
+ else if (result.isQueued())\r
+ {\r
wsInfo.setStatus(WebserviceInfo.STATE_QUEUING);\r
}\r
\r
- if (result.isFinished()) {\r
+ if (result.isFinished())\r
+ {\r
parseResult();\r
jobComplete = true;\r
jobsRunning--;\r
- } else {\r
- if (result.getStatus() != null) {\r
+ }\r
+ else\r
+ {\r
+ if (result.getStatus() != null)\r
+ {\r
wsInfo.setProgressText(OutputHeader + "\n" +\r
result.getStatus());\r
}\r
\r
- if (!(result.isJobFailed() || result.isServerError())) {\r
+ if (!(result.isJobFailed() || result.isServerError()))\r
+ {\r
Thread.sleep(5000);\r
\r
// System.out.println("I'm alive "+seqid+" "+jobid);\r
- } else {\r
+ }\r
+ else\r
+ {\r
break;\r
}\r
}\r
- } catch (Exception ex) {\r
+ }\r
+ catch (Exception ex)\r
+ {\r
allowedServerExceptions--;\r
wsInfo.appendProgressText("\n" + ServiceName +\r
" Server exception!\n" + ex.getMessage());\r
ex.getMessage());\r
\r
// ex.printStackTrace(); JBPNote Debug\r
- try {\r
- if (allowedServerExceptions > 0) {\r
+ try\r
+ {\r
+ if (allowedServerExceptions > 0)\r
+ {\r
Thread.sleep(5000);\r
}\r
- } catch (InterruptedException ex1) {\r
+ }\r
+ catch (InterruptedException ex1)\r
+ {\r
}\r
}\r
}\r
\r
- if (allowedServerExceptions == 0) {\r
+ if (allowedServerExceptions == 0)\r
+ {\r
wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);\r
- } else {\r
+ }\r
+ else\r
+ {\r
if (!((result != null) &&\r
- (result.isJobFailed() || result.isServerError()))) {\r
+ (result.isJobFailed() || result.isServerError())))\r
+ {\r
wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_OK);\r
- } else {\r
- if (result.isFailed()) {\r
+ }\r
+ else\r
+ {\r
+ if (result.isFailed())\r
+ {\r
wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR);\r
}\r
\r
- if (result.isServerError()) {\r
+ if (result.isServerError())\r
+ {\r
wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);\r
}\r
}\r
}\r
}\r
\r
- void StartJob() {\r
- try {\r
+ void StartJob()\r
+ {\r
+ try\r
+ {\r
vamsas.objects.simple.WsJobId jobsubmit = server.align(seqs);\r
\r
- if ((jobsubmit != null) && (jobsubmit.getStatus() == 1)) {\r
+ if ((jobsubmit != null) && (jobsubmit.getStatus() == 1))\r
+ {\r
jobId = jobsubmit.getJobId();\r
System.out.println(WsURL + " Job Id '" + jobId + "'");\r
- } else {\r
- if (jobsubmit == null) {\r
+ }\r
+ else\r
+ {\r
+ if (jobsubmit == null)\r
+ {\r
throw new Exception("Server at " + WsURL +\r
" returned null object, it probably cannot be contacted. Try again later ?");\r
}\r
\r
throw new Exception(jobsubmit.getJobId());\r
}\r
- } catch (Exception e) {\r
+ }\r
+ catch (Exception e)\r
+ {\r
// TODO: JBPNote catch timeout or other fault types explicitly\r
// For unexpected errors\r
System.err.println(WebServiceName +\r
- "Client: Failed to submit the sequences for alignment (probably a server side problem)\n"\r
- + "When contacting Server:"+WsURL + "\n" + e.toString() + "\n");\r
+ "Client: Failed to submit the sequences for alignment (probably a server side problem)\n" +\r
+ "When contacting Server:" + WsURL + "\n" + e.toString() +\r
+ "\n");\r
this.allowedServerExceptions = 0;\r
wsInfo.setStatus(wsInfo.STATE_STOPPED_SERVERERROR);\r
- wsInfo.appendProgressText("Failed to submit sequences for alignment.\n"\r
- + "It is most likely that there is a problem with the server.\n"\r
- + "Just close the window\n");\r
+ wsInfo.appendProgressText(\r
+ "Failed to submit sequences for alignment.\n" +\r
+ "It is most likely that there is a problem with the server.\n" +\r
+ "Just close the window\n");\r
\r
// e.printStackTrace(); // TODO: JBPNote DEBUG\r
}\r
\r
private void addFloatAnnotations(Alignment al, int[] gapmap,\r
Vector values, String Symname, String Visname, float min,\r
- float max, int winLength) {\r
+ float max, int winLength)\r
+ {\r
Annotation[] annotations = new Annotation[al.getWidth()];\r
\r
- for (int j = 0; j < values.size(); j++) {\r
+ for (int j = 0; j < values.size(); j++)\r
+ {\r
float value = Float.parseFloat(values.get(j).toString());\r
annotations[gapmap[j]] = new Annotation("", value + "", ' ',\r
value);\r
}\r
\r
private jalview.datamodel.Sequence[] getVamsasAlignment(\r
- vamsas.objects.simple.Alignment valign) {\r
+ vamsas.objects.simple.Alignment valign)\r
+ {\r
vamsas.objects.simple.Sequence[] seqs = valign.getSeqs().getSeqs();\r
jalview.datamodel.Sequence[] msa = new jalview.datamodel.Sequence[seqs.length];\r
\r
return msa;\r
}\r
\r
- void parseResult() {\r
+ void parseResult()\r
+ {\r
SequenceI[] seqs = null;\r
\r
- try {\r
+ try\r
+ {\r
// OutputHeader = output.getText();\r
- if (result.isFailed()) {\r
+ if (result.isFailed())\r
+ {\r
OutputHeader += "Job failed.\n";\r
}\r
\r
- if (result.getStatus() != null) {\r
+ if (result.getStatus() != null)\r
+ {\r
OutputHeader += ("\n" + result.getStatus());\r
}\r
\r
- if (result.getMsa() != null) {\r
+ if (result.getMsa() != null)\r
+ {\r
OutputHeader += "\nAlignment Object Method Notes\n";\r
\r
String[] lines = result.getMsa().getMethod();\r
\r
wsInfo.setProgressText(OutputHeader);\r
\r
- if (seqs != null) {\r
+ if (seqs != null)\r
+ {\r
AlignmentOrder msaorder = new AlignmentOrder(seqs);\r
\r
- if (preserveOrder) {\r
+ if (preserveOrder)\r
+ {\r
jalview.analysis.AlignmentSorter.recoverOrder(seqs);\r
}\r
\r
AlignFrame.NEW_WINDOW_WIDTH,\r
AlignFrame.NEW_WINDOW_HEIGHT);\r
}\r
- } catch (Exception ex) {\r
+ }\r
+ catch (Exception ex)\r
+ {\r
ex.printStackTrace();\r
}\r
}\r