1 package jalview.ws.slivkaws;
3 import jalview.ws.params.ArgumentI;
4 import jalview.ws.params.WsParamSetI;
5 import jalview.ws.params.simple.BooleanOption;
6 import jalview.ws.params.simple.DoubleParameter;
7 import jalview.ws.params.simple.IntegerParameter;
8 import jalview.ws.params.simple.StringParameter;
10 import java.io.IOException;
11 import java.util.ArrayList;
12 import java.util.List;
14 import uk.ac.dundee.compbio.slivkaclient.BooleanField;
15 import uk.ac.dundee.compbio.slivkaclient.ChoiceField;
16 import uk.ac.dundee.compbio.slivkaclient.DecimalField;
17 import uk.ac.dundee.compbio.slivkaclient.FormField;
18 import uk.ac.dundee.compbio.slivkaclient.IntegerField;
19 import uk.ac.dundee.compbio.slivkaclient.SlivkaForm;
20 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
21 import uk.ac.dundee.compbio.slivkaclient.TextField;
25 public class SlivkaParamSet implements WsParamSetI
27 private SlivkaService service;
28 private List<ArgumentI> args = new ArrayList<>();
30 SlivkaParamSet(SlivkaService service) throws IOException {
31 this.service = service;
32 SlivkaForm form = service.getForm();
33 for (FormField field : form.getFields())
35 switch (field.getType()) {
37 BooleanField boolField = (BooleanField) field;
38 args.add(new BooleanOption(
39 field.getName(), field.getDescription(), field.getLabel(),
40 field.isRequired(), boolField.getDefault(), null
44 TextField textField = (TextField) field;
45 args.add(new StringParameter(
46 field.getName(), field.getDescription(), field.isRequired(),
47 textField.getDefault(), textField.getDefault()
51 IntegerField intField = (IntegerField) field;
52 args.add(new IntegerParameter(
53 field.getName(), field.getDescription(), field.isRequired(),
54 intField.getDefault(), intField.getMin(), intField.getMax()
58 DecimalField doubleField = (DecimalField) field;
59 args.add(new DoubleParameter(
60 field.getName(), field.getDescription(), field.isRequired(),
61 doubleField.getDefault(), doubleField.getMin(),
66 ChoiceField choiceField = (ChoiceField) field;
67 List<String> choices = new ArrayList<>(choiceField.getChoices());
68 if (field.hasMultipleValues()) {
70 for (String choice : choices) {
71 args.add(new BooleanOption(
72 String.format("%s$%d", field.getName(), counter++),
73 field.getDescription(), choice, field.isRequired(),
74 choice.equals(choiceField.getDefault()), choice,
81 args.add(new StringParameter(
82 field.getName(), field.getDescription(),
83 field.isRequired(), choiceField.getDefault(), choiceField.getDefault(),
96 public String getName()
102 public String getDescription()
108 public String[] getApplicableUrls()
110 return new String[] { service.getURL().toString() };
114 public String getSourceFile()
120 public void setSourceFile(String newfile)
125 public boolean isModifiable()
131 public List<ArgumentI> getArguments()
137 public void setArguments(List<ArgumentI> args)
139 throw new RuntimeException();