update spikes/mungo from JAL-3076 patch branch
[jalview.git] / src / jalview / ws / params / simple / Option.java
index ce5d669..653359f 100644 (file)
@@ -24,125 +24,20 @@ import jalview.ws.params.OptionI;
 
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 public class Option implements OptionI
 {
-  String name;
 
-  /*
-   * current value in string format, or "null" if undefined
-   */
-  String value;
+  String name, value, defvalue, description;
 
-  /*
-   * default value in string format, or "null" if undefined
-   */
-  String defvalue;
-
-  String description;
-
-  List<String> possibleVals;
-
-  /*
-   * optional display names corresponding to possibleVals
-   */
-  List<String> displayVals;
+  ArrayList<String> possibleVals = new ArrayList<String>();
 
   boolean required;
 
   URL fdetails;
 
-  /**
-   * Copy constructor
-   * 
-   * @param opt
-   */
-  public Option(Option opt)
-  {
-    name = opt.name;
-    value = opt.value;
-    defvalue = opt.defvalue;
-    description = opt.description;
-    if (opt.possibleVals != null)
-    {
-      possibleVals = new ArrayList<>(opt.possibleVals);
-    }
-    required = opt.required;
-    // URLs are singletons - so we copy by reference. nasty but true.
-    fdetails = opt.fdetails;
-  }
-
-  public Option()
-  {
-  }
-
-  /**
-   * Constructor including display names for possible values
-   * 
-   * @param name2
-   * @param description2
-   * @param isrequired
-   * @param defValue
-   * @param val
-   * @param possibleVals
-   * @param fdetails
-   */
-  public Option(String name2, String description2, boolean isrequired,
-          String defValue, String val, List<String> possibleVals,
-          List<String> displayNames, URL fdetails)
-  {
-    name = name2;
-    description = description2;
-    this.value = val;
-    this.required = isrequired;
-    this.defvalue = defValue;
-    if (possibleVals != null)
-    {
-      this.possibleVals = new ArrayList<>(possibleVals);
-    }
-    if (displayNames != null)
-    {
-      this.displayVals = new ArrayList<>(displayNames);
-    }
-    this.fdetails = fdetails;
-  }
-
-  /**
-   * Constructor
-   * 
-   * @param name2
-   * @param description2
-   * @param isrequired
-   * @param defValue
-   * @param val
-   * @param possibleVals
-   * @param fdetails
-   */
-  public Option(String name2, String description2, boolean isrequired,
-          String defValue, String val, List<String> possibleVals,
-          URL fdetails)
-  {
-    this(name2, description2, isrequired, defValue, val, possibleVals, null,
-            fdetails);
-  }
-
-  @Override
-  public OptionI copy()
-  {
-    Option opt = new Option(this);
-    return opt;
-  }
-
-  /**
-   * toString method to help identify options in the debugger only
-   */
-  @Override
-  public String toString()
-  {
-    return this.getClass().getName() + ":" + name;
-  }
-
   @Override
   public String getName()
   {
@@ -185,9 +80,49 @@ public class Option implements OptionI
     return possibleVals;
   }
 
+  public Option(Option opt)
+  {
+    name = new String(opt.name);
+    if (opt.value != null)
+      value = new String(opt.value);
+    if (opt.defvalue != null)
+      defvalue = new String(opt.defvalue);
+    if (opt.description != null)
+      description = new String(opt.description);
+    if (opt.possibleVals != null)
+    {
+      possibleVals = (ArrayList<String>) opt.possibleVals.clone();
+    }
+    required = opt.required;
+    // URLs are singletons - so we copy by reference. nasty but true.
+    fdetails = opt.fdetails;
+  }
+
+  public Option()
+  {
+  }
+
+  public Option(String name2, String description2, boolean isrequired,
+          String defValue, String value, Collection<String> possibleVals,
+          URL fdetails)
+  {
+    name = name2;
+    description = description2;
+    this.value = value;
+    this.required = isrequired;
+    this.defvalue = defValue;
+    if (possibleVals != null)
+    {
+      this.possibleVals = new ArrayList<String>();
+      this.possibleVals.addAll(possibleVals);
+    }
+    this.fdetails = fdetails;
+  }
+
   @Override
-  public List<String> getDisplayNames()
+  public OptionI copy()
   {
-    return displayVals;
+    Option opt = new Option(this);
+    return opt;
   }
 }