From 8c2e72fec911f86333cbc82aaed4d29fadac542c Mon Sep 17 00:00:00 2001 From: jprocter Date: Thu, 3 Nov 2011 18:06:37 +0000 Subject: [PATCH] (JAL-978) refactored JABAWS2 service handle class to own package --- src/jalview/gui/WsJobParameters.java | 6 +- src/jalview/ws/jws2/JabaParamStore.java | 2 +- src/jalview/ws/jws2/JabaPreset.java | 2 +- src/jalview/ws/jws2/Jws2Discoverer.java | 144 +------------------ src/jalview/ws/jws2/jabaws2/Jws2Instance.java | 187 +++++++++++++++++++++++++ 5 files changed, 194 insertions(+), 147 deletions(-) create mode 100644 src/jalview/ws/jws2/jabaws2/Jws2Instance.java diff --git a/src/jalview/gui/WsJobParameters.java b/src/jalview/gui/WsJobParameters.java index b70b985..b9bd873 100644 --- a/src/jalview/gui/WsJobParameters.java +++ b/src/jalview/gui/WsJobParameters.java @@ -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])) diff --git a/src/jalview/ws/jws2/JabaParamStore.java b/src/jalview/ws/jws2/JabaParamStore.java index b9f6066..766bcf7 100644 --- a/src/jalview/ws/jws2/JabaParamStore.java +++ b/src/jalview/ws/jws2/JabaParamStore.java @@ -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; diff --git a/src/jalview/ws/jws2/JabaPreset.java b/src/jalview/ws/jws2/JabaPreset.java index ebc86d8..401a9af 100644 --- a/src/jalview/ws/jws2/JabaPreset.java +++ b/src/jalview/ws/jws2/JabaPreset.java @@ -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; diff --git a/src/jalview/ws/jws2/Jws2Discoverer.java b/src/jalview/ws/jws2/Jws2Discoverer.java index 9a3796d..8907b58 100644 --- a/src/jalview/ws/jws2/Jws2Discoverer.java +++ b/src/jalview/ws/jws2/Jws2Discoverer.java @@ -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 index 0000000..534daf9 --- /dev/null +++ b/src/jalview/ws/jws2/jabaws2/Jws2Instance.java @@ -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 -- 1.7.10.2