import java.util.List;
import compbio.metadata.Argument;
+import compbio.metadata.Option;
import compbio.metadata.Preset;
+import jalview.ws.jws2.JabaParamStore;
import jalview.ws.jws2.JabaPreset;
+import jalview.ws.jws2.ParameterUtils;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.params.ArgumentI;
+import jalview.ws.params.ParamManager;
import jalview.ws.params.WsParamSetI;
/**
* @author jprocter TODO: refactor to a generic 'last job and service run'
* container ?
*/
-public class AAConsSettings
+public class AAConsSettings extends jalview.ws.params.AutoCalcSetting
{
- boolean autoUpdate;
-
Jws2Instance service;
- WsParamSetI preset;
-
- List<Argument> jobArgset;
-
public AAConsSettings(boolean autoUpdate, Jws2Instance service,
- WsParamSetI preset, List<Argument> jobArgset)
+ WsParamSetI preset, List<ArgumentI> jobArgset)
{
- super();
- this.autoUpdate = autoUpdate;
+ super(preset, jobArgset, autoUpdate);
this.service = service;
- this.preset = preset;
- this.jobArgset = jobArgset;
- }
-
- public boolean isAutoUpdate()
- {
- return autoUpdate;
- }
-
- public void setAutoUpdate(boolean autoUpdate)
- {
- this.autoUpdate = autoUpdate;
}
public Jws2Instance getService()
}
}
- public WsParamSetI getPreset()
+ public List<Argument> getJobArgset()
{
- return preset;
+ return jobArgset==null ? null : JabaParamStore.getJabafromJwsArgs(jobArgset);
}
- public void setPreset(WsParamSetI preset)
+ public void setJobArgset(List<Argument> jobArgset)
{
- // TODO: test if service URL is in presets
- this.preset = preset;
+ // TODO: test if parameters valid for service
+ this.jobArgset = jobArgset==null ? null : JabaParamStore.getJwsArgsfromJaba(jobArgset);
}
- public List<Argument> getJobArgset()
+ public String getWsParamFile()
{
- return jobArgset;
+ List<Option> opts=null;
+ if (jobArgset!=null)
+ {
+ opts = JabaParamStore.getJabafromJwsArgs(jobArgset);
+ } else {
+ if (preset!=null)
+ {
+ opts = JabaParamStore.getJabafromJwsArgs(preset.getArguments());
+ }
+ }
+ if (opts==null || opts.size()==0)
+ {
+ return "";
+ }
+ StringBuffer pset=new StringBuffer();
+ for (String ps:ParameterUtils.writeParameterSet(opts, " "))
+ {
+ pset.append(ps); pset.append("\n");
+ }
+ return pset.toString();
}
- public void setJobArgset(List<Argument> jobArgset)
+ @Override
+ public String getServiceURI()
{
- // TODO: test if parameters valid for service
- this.jobArgset = jobArgset;
+ return service.getServiceTypeURI();
}
}
--- /dev/null
+package jalview.ws.params;
+
+import java.util.List;
+
+public abstract class AutoCalcSetting
+{
+
+ protected boolean autoUpdate;
+
+ protected WsParamSetI preset;
+
+ protected List<ArgumentI> jobArgset;
+
+ public AutoCalcSetting(WsParamSetI preset2, List<ArgumentI> jobArgset2,
+ boolean autoUpdate2)
+ {
+ autoUpdate = autoUpdate2;
+ preset = preset2;
+ jobArgset = jobArgset2;
+ }
+
+ public boolean isAutoUpdate()
+ {
+ return autoUpdate;
+ }
+
+ public void setAutoUpdate(boolean autoUpdate)
+ {
+ this.autoUpdate = autoUpdate;
+ }
+
+ public WsParamSetI getPreset()
+ {
+ return preset;
+ }
+
+ public void setPreset(WsParamSetI preset)
+ {
+ // TODO: test if service URL is in presets
+ this.preset = preset;
+ }
+
+ public List<ArgumentI> getArgumentSet()
+ {
+ return jobArgset;
+ }
+
+ /**
+ *
+ * @return characteristic URI for this service. The URI should reflect the
+ * type and version of this service, enabling the service client code
+ * to recover the correct client for this calculation.
+ */
+ public abstract String getServiceURI();
+
+ /**
+ * return any concrete service endpoints associated with this calculation.
+ * built in services should return a zero length array
+ *
+ * @return
+ */
+ public String[] getServiceURLs()
+ {
+ return new String[0];
+ }
+
+ /**
+ *
+ * @return stringified representation of the parameters for this setting
+ */
+ public abstract String getWsParamFile();
+
+}