Create generic msa service instance
[jalview.git] / src / jalview / ws / slivkaws / SlivkaParamSet.java
1 package jalview.ws.slivkaws;
2
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.RadioChoiceParameter;
9 import jalview.ws.params.simple.StringParameter;
10
11 import java.io.IOException;
12 import java.util.ArrayList;
13 import java.util.List;
14
15 import uk.ac.dundee.compbio.slivkaclient.BooleanField;
16 import uk.ac.dundee.compbio.slivkaclient.ChoiceField;
17 import uk.ac.dundee.compbio.slivkaclient.DecimalField;
18 import uk.ac.dundee.compbio.slivkaclient.Form;
19 import uk.ac.dundee.compbio.slivkaclient.FormField;
20 import uk.ac.dundee.compbio.slivkaclient.IntegerField;
21 import uk.ac.dundee.compbio.slivkaclient.SlivkaForm;
22 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
23 import uk.ac.dundee.compbio.slivkaclient.TextField;
24
25
26
27 public class SlivkaParamSet implements WsParamSetI
28 {
29   private SlivkaService service;
30   private List<ArgumentI> args = new ArrayList<>();
31
32   SlivkaParamSet(SlivkaService service) throws IOException {
33     this.service = service;
34     SlivkaForm form = service.getForm();
35     for (FormField field : form.getFields())
36     {
37       ArgumentI arg;
38       switch (field.getType()) {
39       case BOOLEAN:
40         BooleanField boolField = (BooleanField) field;
41         arg = new BooleanOption(
42             field.getName(), field.getDescription(), field.isRequired(), boolField.getDefault(),
43             boolField.getDefault(), null
44         );
45         break;
46       case TEXT:
47         TextField textField = (TextField) field;
48         arg = new StringParameter(
49             field.getName(), field.getDescription(), field.isRequired(), textField.getDefault(),
50             textField.getDefault()
51         );
52         break;
53       case INTEGER:
54         IntegerField intField = (IntegerField) field;
55         arg = new IntegerParameter(
56             field.getName(), field.getDescription(), field.isRequired(), intField.getDefault(),
57             intField.getMin(), intField.getMax()
58         );
59         break;
60       case DECIMAL:
61         DecimalField doubleField = (DecimalField) field;
62         arg = new DoubleParameter(
63             field.getName(), field.getDescription(), field.isRequired(), doubleField.getDefault(),
64             doubleField.getMin(), doubleField.getMax()
65         );
66         break;
67       case CHOICE:
68         ChoiceField choiceField = (ChoiceField) field;
69         arg = new RadioChoiceParameter(
70             field.getName(), field.getDescription(), new ArrayList<>(choiceField.getChoices()), choiceField.getDefault()
71         );
72         break;
73       case FILE:
74       default:
75         continue;
76       }
77       args.add(arg);
78     }
79   }
80
81   @Override
82   public String getName()
83   {
84     return "Default";
85   }
86
87   @Override
88   public String getDescription()
89   {
90     return "";
91   }
92
93   @Override
94   public String[] getApplicableUrls()
95   {
96     return new String[] { service.getURL().toString() };
97   }
98
99   @Override
100   public String getSourceFile()
101   {
102     return null;
103   }
104
105   @Override
106   public void setSourceFile(String newfile)
107   {
108   }
109
110   @Override
111   public boolean isModifiable()
112   {
113     return true;
114   }
115
116   @Override
117   public List<ArgumentI> getArguments()
118   {
119     return args;
120   }
121
122   @Override
123   public void setArguments(List<ArgumentI> args)
124   {
125     throw new RuntimeException();
126   }
127
128 }