eb993c27dd01d8fbcd1d73bbb4a76b1ca5fd800d
[jalview.git] / src / jalview / ws / params / simple / Option.java
1 package jalview.ws.params.simple;
2
3 import jalview.ws.params.OptionI;
4
5 import java.net.URL;
6 import java.util.ArrayList;
7 import java.util.Collection;
8 import java.util.List;
9
10 public class Option implements OptionI {
11
12   
13   String name, value, defvalue,description;
14   ArrayList<String> possibleVals=new ArrayList<String>();
15   boolean required;
16   URL fdetails;
17   @Override
18   public String getName()
19   {
20     return name;
21   }
22
23   @Override
24   public String getValue()
25   {
26     return value==null ? defvalue : value;
27   }
28
29   @Override
30   public void setValue(String selectedItem)
31   {
32     value = selectedItem;
33   }
34
35   @Override
36   public URL getFurtherDetails()
37   {
38     return fdetails;
39   }
40
41   @Override
42   public boolean isRequired()
43   {
44     return required;
45   }
46
47   @Override
48   public String getDescription()
49   {
50     return description;
51   }
52
53   @Override
54   public List<String> getPossibleValues()
55   {
56     return possibleVals;
57   }
58   public Option(Option opt)
59   {
60     name = new String(opt.name);
61     if (opt.value!=null) 
62       value = new String(opt.value);
63     if (opt.defvalue!=null)
64       defvalue=new String(opt.defvalue);
65     if (opt.description!=null)
66       description=new String(opt.description);
67     if (opt.possibleVals!=null) {
68       possibleVals = (ArrayList<String>)opt.possibleVals.clone();
69     }
70     required = opt.required;
71     // URLs are singletons - so we copy by reference. nasty but true.
72     fdetails = opt.fdetails;
73   }
74   public Option()
75   {
76   }
77
78   public Option(String name2, String description2, boolean isrequired,
79           String defValue, String value, Collection<String> possibleVals, URL fdetails)
80   {
81     name = name2;
82     description = description2;
83     this.value = value;
84     this.required = isrequired;
85     this.defvalue = defValue;
86     if (possibleVals!=null)
87     {
88       this.possibleVals = new ArrayList<String>();
89       this.possibleVals.addAll(possibleVals);
90     }
91     this.fdetails = fdetails;
92   }
93
94
95   @Override
96   public OptionI copy()
97   {
98     Option opt = new Option(this);
99     return opt;
100   }
101 }