27ecf85199e8ba7393523428e36510cc3bdba4ac
[jalview.git] / src / jalview / ws / jws2 / dm / JabaOption.java
1 package jalview.ws.jws2.dm;
2
3 import jalview.ws.jws2.ParameterUtils;
4 import jalview.ws.params.OptionI;
5
6 import java.net.URL;
7 import java.util.List;
8
9 import compbio.metadata.Option;
10
11 public class JabaOption implements jalview.ws.params.OptionI
12 {
13   public JabaOption(Option rg)
14   {
15     opt = rg;
16   }
17
18   Option opt;
19
20   @Override
21   public String getDefaultValue()
22   {
23     return opt.getDefaultValue();
24   }
25
26   @Override
27   public String getName()
28   {
29     return opt.getName();
30   }
31
32   @Override
33   public URL getFurtherDetails()
34   {
35     return opt.getFurtherDetails();
36   }
37
38   @Override
39   public boolean isRequired()
40   {
41     return opt.isRequired();
42   }
43
44   @Override
45   public String getDescription()
46   {
47     return opt.getDescription();
48   }
49
50   @Override
51   public List<String> getPossibleValues()
52   {
53     // TODO: assert typesafety
54     return opt.getPossibleValues();
55   }
56
57   @Override
58   public void setDefaultValue(String selectedItem)
59   {
60     try {
61       opt.setDefaultValue(selectedItem);
62     } catch (Exception e)
63     {
64       e.printStackTrace();
65       throw new Error("Implementation error: cannot set Jaba Option to a value outside its allowed value range!");
66     }
67   }
68
69   @Override
70   public OptionI copy()
71   {
72     return new JabaOption(ParameterUtils.copyOption(opt));
73   }
74
75   /**
76    * get the underlying Jaba option or parameter object. Note - use copy first if you want to modify the value of the option.
77    * @return
78    */
79   public Option getOption()
80   {
81     return opt;
82   }
83   
84 }