--- /dev/null
+package jalview.ws.jws2.dm;
+
+import jalview.ws.jws2.ParameterUtils;
+import jalview.ws.params.OptionI;
+
+import java.net.URL;
+import java.util.List;
+
+import compbio.metadata.Option;
+
+public class JabaOption implements jalview.ws.params.OptionI
+{
+ public JabaOption(Option rg)
+ {
+ opt = rg;
+ }
+
+ Option opt;
+
+ @Override
+ public String getDefaultValue()
+ {
+ return opt.getDefaultValue();
+ }
+
+ @Override
+ public String getName()
+ {
+ return opt.getName();
+ }
+
+ @Override
+ public URL getFurtherDetails()
+ {
+ return opt.getFurtherDetails();
+ }
+
+ @Override
+ public boolean isRequired()
+ {
+ return opt.isRequired();
+ }
+
+ @Override
+ public String getDescription()
+ {
+ return opt.getDescription();
+ }
+
+ @Override
+ public List<String> getPossibleValues()
+ {
+ // TODO: assert typesafety
+ return opt.getPossibleValues();
+ }
+
+ @Override
+ public void setDefaultValue(String selectedItem)
+ {
+ try {
+ opt.setDefaultValue(selectedItem);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ throw new Error("Implementation error: cannot set Jaba Option to a value outside its allowed value range!");
+ }
+ }
+
+ @Override
+ public OptionI copy()
+ {
+ return new JabaOption(ParameterUtils.copyOption(opt));
+ }
+
+ /**
+ * get the underlying Jaba option or parameter object. Note - use copy first if you want to modify the value of the option.
+ * @return
+ */
+ public Option getOption()
+ {
+ return opt;
+ }
+
+}