Formatting changes
[jalview.git] / src / jalview / ws / MsaWSClient.java
index 94e19e7..0d5c22e 100755 (executable)
@@ -26,28 +26,38 @@ import jalview.datamodel.*;
 \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
@@ -59,7 +69,8 @@ public class MsaWSClient extends WSClient {
         wsInfo = new jalview.gui.WebserviceInfo(WebServiceJobTitle,\r
                 WebServiceReference);\r
 \r
-        if (!locateWebService()) {\r
+        if (!locateWebService())\r
+        {\r
             return;\r
         }\r
 \r
@@ -73,8 +84,10 @@ public class MsaWSClient extends WSClient {
     }\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
@@ -83,19 +96,30 @@ public class MsaWSClient extends WSClient {
             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
@@ -110,7 +134,8 @@ public class MsaWSClient extends WSClient {
         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
@@ -124,7 +149,8 @@ public class MsaWSClient extends WSClient {
         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
@@ -134,7 +160,8 @@ public class MsaWSClient extends WSClient {
 \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
@@ -152,85 +179,114 @@ public class MsaWSClient extends WSClient {
             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
@@ -238,59 +294,81 @@ public class MsaWSClient extends WSClient {
                         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
@@ -298,10 +376,12 @@ public class MsaWSClient extends WSClient {
 \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
@@ -312,7 +392,8 @@ public class MsaWSClient extends WSClient {
         }\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
@@ -323,20 +404,25 @@ public class MsaWSClient extends WSClient {
             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
@@ -350,10 +436,12 @@ public class MsaWSClient extends WSClient {
 \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
@@ -370,7 +458,9 @@ public class MsaWSClient extends WSClient {
                         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