JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / ws / params / simple / IntegerParameter.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
3  * Copyright (C) 2015 The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.ws.params.simple;
22
23 import jalview.ws.params.ParameterI;
24 import jalview.ws.params.ValueConstrainI;
25
26 /**
27  * @author jimp
28  * 
29  */
30 public class IntegerParameter extends Option implements ParameterI
31 {
32   int defval;
33
34   int min, max;
35
36   public ValueConstrainI getValidValue()
37   {
38     return new ValueConstrainI()
39     {
40
41       @Override
42       public ValueType getType()
43       {
44         return ValueType.Integer;
45       }
46
47       @Override
48       public Number getMin()
49       {
50         if (min < max)
51         {
52           return min;
53         }
54         else
55         {
56           return null;
57         }
58       }
59
60       @Override
61       public Number getMax()
62       {
63         if (min < max)
64         {
65           return max;
66         }
67         else
68         {
69           return null;
70         }
71       }
72     };
73   }
74
75   public IntegerParameter(IntegerParameter parm)
76   {
77     super(parm);
78     max = parm.max;
79     min = parm.min;
80   }
81
82   public IntegerParameter(String name, String description,
83           boolean required, int defValue, int min, int max)
84   {
85     super(name, description, required, String.valueOf(defValue), null,
86             null, null);
87     defval = defValue;
88     this.min = min;
89     this.max = max;
90   }
91
92   public IntegerParameter(String name, String description,
93           boolean required, int defValue, int value, int min, int max)
94   {
95     super(name, description, required, String.valueOf(defValue), String
96             .valueOf(value), null, null);
97     defval = defValue;
98     this.min = min;
99     this.max = max;
100   }
101
102   @Override
103   public IntegerParameter copy()
104   {
105     return new IntegerParameter(this);
106   }
107
108 }