(JAL-978) refactored JABAWS2 service handle class to own package
authorjprocter <jprocter@compbio.dundee.ac.uk>
Thu, 3 Nov 2011 18:06:37 +0000 (18:06 +0000)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Thu, 3 Nov 2011 18:06:37 +0000 (18:06 +0000)
src/jalview/gui/WsJobParameters.java
src/jalview/ws/jws2/JabaParamStore.java
src/jalview/ws/jws2/JabaPreset.java
src/jalview/ws/jws2/Jws2Discoverer.java
src/jalview/ws/jws2/jabaws2/Jws2Instance.java [new file with mode: 0644]

index b70b985..b9bd873 100644 (file)
@@ -22,7 +22,7 @@ import jalview.gui.OptsAndParamsPage.ParamBox;
 import jalview.ws.jws2.JabaParamStore;
 import jalview.ws.jws2.JabaPreset;
 import jalview.ws.jws2.Jws2Discoverer;
-import jalview.ws.jws2.Jws2Discoverer.Jws2Instance;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.ArgumentI;
 import jalview.ws.params.OptionI;
 import jalview.ws.params.ParamDatastoreI;
@@ -867,8 +867,8 @@ public class WsJobParameters extends JPanel implements ItemListener,
       e.printStackTrace();
       return;
     }
-    Jws2Discoverer.Jws2Instance lastserv = null;
-    for (Jws2Discoverer.Jws2Instance service : disc.getServices())
+    Jws2Instance lastserv = null;
+    for (Jws2Instance service : disc.getServices())
     {
       lastserv = service;
       if (p >= args.length || service.serviceType.equalsIgnoreCase(args[p]))
index b9f6066..766bcf7 100644 (file)
@@ -33,10 +33,10 @@ import compbio.metadata.Preset;
 import compbio.metadata.PresetManager;
 import compbio.metadata.RunnerConfig;
 
-import jalview.ws.jws2.Jws2Discoverer.Jws2Instance;
 import jalview.ws.jws2.dm.JabaOption;
 import jalview.ws.jws2.dm.JabaParameter;
 import jalview.ws.jws2.dm.JabaWsParamSet;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.ArgumentI;
 import jalview.ws.params.ParamDatastoreI;
 import jalview.ws.params.ParamManager;
index ebc86d8..401a9af 100644 (file)
@@ -17,7 +17,7 @@
  */
 package jalview.ws.jws2;
 
-import jalview.ws.jws2.Jws2Discoverer.Jws2Instance;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.ArgumentI;
 import jalview.ws.params.WsParamSetI;
 
index 9a3796d..8907b58 100644 (file)
@@ -22,7 +22,6 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
-import java.io.Closeable;
 import java.net.ConnectException;
 import java.net.URL;
 import java.util.ArrayList;
@@ -46,13 +45,10 @@ import jalview.gui.Desktop;
 import jalview.gui.JalviewChangeSupport;
 import jalview.gui.JvSwingUtils;
 import jalview.ws.WSMenuEntryProviderI;
-import jalview.ws.jws2.Jws2Discoverer.Jws2Instance;
-import jalview.ws.params.ParamDatastoreI;
-import compbio.data.msa.MsaWS;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+import compbio.data.msa.JABAService;
 import compbio.metadata.Option;
 import compbio.metadata.Preset;
-import compbio.metadata.PresetManager;
-import compbio.metadata.RunnerConfig;
 import compbio.ws.client.Jws2Client;
 import compbio.ws.client.Services;
 
@@ -227,142 +223,6 @@ public class Jws2Discoverer implements Runnable, WSMenuEntryProviderI
     service.hasParameters();
   }
 
-  public class Jws2Instance
-  {
-    public String hosturl;
-
-    public String serviceType;
-
-    public MsaWS service;
-
-    public Jws2Instance(String hosturl, String serviceType, MsaWS service)
-    {
-      super();
-      this.hosturl = hosturl;
-      this.serviceType = serviceType;
-      this.service = service;
-    }
-
-    PresetManager presets = null;
-
-    public JabaParamStore paramStore = null;
-
-    /**
-     * non thread safe - gets the presets for this service (blocks whilst it
-     * calls the service to get the preset set)
-     * 
-     * @return service presets or null if exceptions were raised.
-     */
-    public PresetManager getPresets()
-    {
-      if (presets == null)
-      {
-        try
-        {
-          presets = service.getPresets();
-        } catch (Exception ex)
-        {
-          System.err
-                  .println("Exception when retrieving presets for service "
-                          + serviceType + " at " + hosturl);
-        }
-      }
-      return presets;
-    }
-
-    public String getHost()
-    {
-      return hosturl;
-      /*
-       * try { URL serviceurl = new URL(hosturl); if (serviceurl.getPort()!=80)
-       * { return serviceurl.getHost()+":"+serviceurl.getPort(); } return
-       * serviceurl.getHost(); } catch (Exception e) {
-       * System.err.println("Failed to parse service URL '" + hosturl +
-       * "' as a valid URL!"); } return null;
-       */
-    }
-
-    /**
-     * @return short description of what the service will do
-     */
-    public String getActionText()
-    {
-      return "Align with " + serviceType;
-    }
-
-    /**
-     * non-thread safe - blocks whilst accessing service to get complete set of
-     * available options and parameters
-     * 
-     * @return
-     */
-    public RunnerConfig getRunnerConfig()
-    {
-      return service.getRunnerOptions();
-    }
-
-    @Override
-    protected void finalize() throws Throwable
-    {
-      if (service != null)
-      {
-        try
-        {
-          Closeable svc = (Closeable) service;
-          service = null;
-          svc.close();
-        } catch (Exception e)
-        {
-        }
-        ;
-      }
-      super.finalize();
-    }
-
-    public ParamDatastoreI getParamStore()
-    {
-      if (paramStore == null)
-      {
-        try
-        {
-          paramStore = new JabaParamStore(this,
-                  (Desktop.instance != null ? Desktop
-                          .getUserParameterStore() : null));
-        } catch (Exception ex)
-        {
-        }
-
-      }
-      return paramStore;
-    }
-
-    public String getUri()
-    {
-      // this is only valid for Jaba 1.0 - this formula might have to change!
-      return hosturl
-              + (hosturl.lastIndexOf("/") == (hosturl.length() - 1) ? ""
-                      : "/") + serviceType;
-    }
-
-    private boolean hasParams = false, lookedForParams = false;
-
-    public boolean hasParameters()
-    {
-      if (!lookedForParams)
-      {
-        lookedForParams = true;
-        try
-        {
-          hasParams = (getRunnerConfig().getArguments().size() > 0);
-        } catch (Exception e)
-        {
-
-        }
-      }
-      return hasParams;
-    }
-  };
-
   /**
    * holds list of services.
    */
diff --git a/src/jalview/ws/jws2/jabaws2/Jws2Instance.java b/src/jalview/ws/jws2/jabaws2/Jws2Instance.java
new file mode 100644 (file)
index 0000000..534daf9
--- /dev/null
@@ -0,0 +1,187 @@
+package jalview.ws.jws2.jabaws2;
+
+import jalview.gui.AlignFrame;
+import jalview.gui.Desktop;
+import jalview.ws.jws2.JabaParamStore;
+import jalview.ws.jws2.MsaWSClient;
+import jalview.ws.jws2.SequenceAnnotationWSClient;
+import jalview.ws.params.ParamDatastoreI;
+
+import java.io.Closeable;
+
+import javax.swing.JMenu;
+
+import compbio.data.msa.JABAService;
+import compbio.data.msa.MsaWS;
+import compbio.data.msa.SequenceAnnotation;
+import compbio.metadata.PresetManager;
+import compbio.metadata.RunnerConfig;
+import compbio.ws.client.Jws2Client;
+import compbio.ws.client.Services;
+
+public class Jws2Instance
+{
+  public String hosturl;
+
+  public String serviceType;
+  public String action;
+  public JABAService service;
+  public String description;
+
+  public Jws2Instance(String hosturl, String serviceType, String action, String description, 
+          JABAService service)
+  {
+    super();
+    this.hosturl = hosturl;
+    this.serviceType = serviceType;
+    this.service = service;
+    this.action=action;
+    this.description = description;
+    
+  }
+
+  PresetManager presets = null;
+
+  public JabaParamStore paramStore = null;
+
+  /**
+   * non thread safe - gets the presets for this service (blocks whilst it calls
+   * the service to get the preset set)
+   * 
+   * @return service presets or null if exceptions were raised.
+   */
+  public PresetManager getPresets()
+  {
+    if (presets == null)
+    {
+      try
+      {
+        if (service instanceof MsaWS<?>)
+        {
+          presets = ((MsaWS) service).getPresets();
+
+        }
+        if (service instanceof SequenceAnnotation<?>)
+        {
+          presets = ((SequenceAnnotation) service).getPresets();
+        }
+      } catch (Exception ex)
+      {
+        System.err.println("Exception when retrieving presets for service "
+                + serviceType + " at " + hosturl);
+      }
+    }
+    return presets;
+  }
+
+  public String getHost()
+  {
+    return hosturl;
+    /*
+     * try { URL serviceurl = new URL(hosturl); if (serviceurl.getPort()!=80) {
+     * return serviceurl.getHost()+":"+serviceurl.getPort(); } return
+     * serviceurl.getHost(); } catch (Exception e) {
+     * System.err.println("Failed to parse service URL '" + hosturl +
+     * "' as a valid URL!"); } return null;
+     */
+  }
+
+  /**
+   * @return short description of what the service will do
+   */
+  public String getActionText()
+  {
+    return action+" with " + serviceType;
+  }
+
+  /**
+   * non-thread safe - blocks whilst accessing service to get complete set of
+   * available options and parameters
+   * 
+   * @return
+   */
+  public RunnerConfig getRunnerConfig()
+  {
+    if (service instanceof MsaWS<?>)
+    {
+      return ((MsaWS) service).getRunnerOptions();
+    }
+    if (service instanceof SequenceAnnotation<?>)
+    {
+      return ((SequenceAnnotation) service).getRunnerOptions();
+    }
+    throw new Error("Implementation Error: Runner Config not available for a JABAWS service of type "+serviceType+" ("+service.getClass()+")");
+  }
+
+  @Override
+  protected void finalize() throws Throwable
+  {
+    if (service != null)
+    {
+      try
+      {
+        Closeable svc = (Closeable) service;
+        service = null;
+        svc.close();
+      } catch (Exception e)
+      {
+      }
+      ;
+    }
+    super.finalize();
+  }
+
+  public ParamDatastoreI getParamStore()
+  {
+    if (paramStore == null)
+    {
+      try
+      {
+        paramStore = new JabaParamStore(this,
+                (Desktop.instance != null ? Desktop.getUserParameterStore()
+                        : null));
+      } catch (Exception ex)
+      {
+      }
+
+    }
+    return paramStore;
+  }
+
+  public String getUri()
+  {
+    // this is only valid for Jaba 1.0 - this formula might have to change!
+    return hosturl
+            + (hosturl.lastIndexOf("/") == (hosturl.length() - 1) ? ""
+                    : "/") + serviceType;
+  }
+
+  private boolean hasParams = false, lookedForParams = false;
+
+  public boolean hasParameters()
+  {
+    if (!lookedForParams)
+    {
+      lookedForParams = true;
+      try
+      {
+        hasParams = (getRunnerConfig().getArguments().size() > 0);
+      } catch (Exception e)
+      {
+
+      }
+    }
+    return hasParams;
+  }
+
+  public void attachWSMenuEntry(JMenu atpoint, AlignFrame alignFrame)
+  {
+    if (service instanceof MsaWS<?>)
+    {
+      new MsaWSClient().attachWSMenuEntry(atpoint, this, alignFrame);
+    } else 
+    if (service instanceof SequenceAnnotation<?>){
+      new SequenceAnnotationWSClient().attachWSMenuEntry(atpoint, this, alignFrame);
+    }
+  }
+}
\ No newline at end of file