/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
import jalview.util.MessageManager;
+import jalview.ws.api.JalviewServiceEndpointProviderI;
+import jalview.ws.api.ServiceWithParameters;
import jalview.ws.jws2.JabaParamStore;
import jalview.ws.jws2.MsaWSClient;
import jalview.ws.jws2.SequenceAnnotationWSClient;
import jalview.ws.params.ParamDatastoreI;
+import jalview.ws.params.ParamManager;
import java.io.Closeable;
import compbio.metadata.PresetManager;
import compbio.metadata.RunnerConfig;
-public class Jws2Instance
+public class Jws2Instance extends ServiceWithParameters
+ implements JalviewServiceEndpointProviderI
{
- public String hosturl;
-
- public String serviceType;
-
- public String action;
public JABAService service;
- public String description;
-
public String docUrl;
/**
public Jws2Instance(String hosturl, String serviceType, String action,
String description, JABAService service)
{
- super();
- this.hosturl = hosturl;
- this.serviceType = serviceType;
+ super(action, action, serviceType, description, hosturl);
this.service = service;
- this.action = action;
- this.description = description;
int p = description.indexOf("MORE INFORMATION:");
if (p > -1)
{
} catch (Exception ex)
{
System.err.println("Exception when retrieving presets for service "
- + serviceType + " at " + hosturl);
+ + getServiceType() + " at " + getHostURL());
}
}
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
}
throw new Error(MessageManager.formatMessage(
"error.implementation_error_runner_config_not_available",
- new String[] { serviceType, service.getClass().toString() }));
+ new String[]
+ { getServiceType(), service.getClass().toString() }));
}
@Override
{
try
{
- Closeable svc = (Closeable) service;
- service = null;
- svc.close();
- } catch (Exception e)
+ ((Closeable) service).close();
+ } catch (Throwable t)
{
+ // ignore
}
- ;
}
super.finalize();
}
+ @Override
public ParamDatastoreI getParamStore()
{
if (paramStore == null)
public String getUri()
{
+ // TODO verify that service parameter sets in projects are consistent with
+ // Jalview 2.10.4
// this is only valid for Jaba 1.0 - this formula might have to change!
- return hosturl
- + (hosturl.lastIndexOf("/") == (hosturl.length() - 1) ? ""
- : "/") + serviceType;
+ return getHostURL()
+ + (getHostURL().lastIndexOf("/") == (getHostURL().length() - 1)
+ ? ""
+ : "/")
+ + getName();
}
private boolean hasParams = false, lookedForParams = false;
+ @Override
public boolean hasParameters()
{
if (!lookedForParams)
}
}
- public String getServiceTypeURI()
+ public String getNameURI()
{
- return "java:" + serviceType;
+ return "java:" + getName();
}
jalview.ws.uimodel.AlignAnalysisUIText aaui;
{
return aaui;
}
+
+ /**
+ * initialise a parameter store for this service
+ *
+ * @param userParameterStore
+ * - the user ParamManager (e.g. Desktop.getUserParameterStore() )
+ */
+ @Override
+ public void initParamStore(ParamManager userParameterStore)
+ {
+ if (paramStore == null)
+ {
+ paramStore = new JabaParamStore(this, userParameterStore);
+ }
+ }
+
+ /**
+ * an object that implements one or more interfaces in jalview.ws.api
+ *
+ * @return
+ */
+ @Override
+ public Object getEndpoint()
+ {
+ if (aaui!=null) {
+ // TODO complete
+ return null;
+ } else {
+ if (service instanceof MsaWS<?>)
+ {
+ return new JabawsMsaInstance(this);
+ } else {
+ // TODO complete
+ // service is for sequence analysis
+ return null;
+ }
+ }
+}
}