ad3834a78e6699654db3e8e068a901b8e2984499
[jalview.git] / src / jalview / ws / params / simple / StringParameter.java
1 package jalview.ws.params.simple;
2
3 import jalview.ws.params.ParameterI;
4 import jalview.ws.params.ValueConstrainI;
5
6 import java.util.List;
7
8 public class StringParameter extends Option implements ParameterI
9 {
10   public static class Builder extends Option.Builder
11   {
12     @Override
13     public StringParameter build()
14     {
15       return new StringParameter(this);
16     }
17   }
18
19   @Override
20   public ValueConstrainI getValidValue()
21   {
22     return new StringValueConstrain();
23   }
24
25   @Override
26   public ParameterI copy()
27   {
28     return new StringParameter(this);
29   }
30
31   private class StringValueConstrain implements ValueConstrainI
32   {
33
34     @Override
35     public ValueType getType()
36     {
37       return ValueType.String;
38     }
39
40     @Override
41     public Number getMax()
42     {
43       return null;
44     }
45
46     @Override
47     public Number getMin()
48     {
49       return null;
50     }
51
52   }
53
54   public static Builder newBuilder()
55   {
56     return new Builder();
57   }
58
59   protected StringParameter(Builder builder)
60   {
61     super(builder);
62   }
63
64   public StringParameter(StringParameter parm)
65   {
66     this.name = parm.name;
67     this.defvalue = parm.defvalue;
68     this.possibleVals = parm.possibleVals;
69     this.displayVals = parm.displayVals;
70   }
71
72   public StringParameter(String name, String description, boolean required,
73       String defValue)
74   {
75     super(name, description, required, String.valueOf(defValue), null, null,
76         null);
77     this.defvalue = defValue;
78   }
79
80   public StringParameter(String name, String description, boolean required,
81       String defValue, String value)
82   {
83     super(name, description, required, String.valueOf(defValue),
84         String.valueOf(value), null, null);
85     this.defvalue = defValue;
86   }
87
88   /**
89    * Constructor for a parameter with a list of possible values and (optionally)
90    * corresponding display names
91    * 
92    * @param name2
93    * @param description2
94    * @param isrequired
95    * @param defValue
96    * @param value
97    * @param possibleVals
98    * @param displayNames
99    */
100   public StringParameter(String name2, String description2,
101       boolean isrequired, String defValue, String value,
102       List<String> possibleVals, List<String> displayNames)
103   {
104     super(name2, description2, isrequired, defValue, value, possibleVals,
105         displayNames, null);
106   }
107 }