possibility to set matching pattern
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / commandline / parameterparser / parameter / IntegerParameter.java
1 package eu.svjatoslav.commons.commandline.parameterparser.parameter;
2
3 import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
4 import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
5
6 public class IntegerParameter extends Parameter {
7
8         public IntegerParameter(final String description) {
9                 super(description, ArgumentCount.SINGLE);
10         }
11
12         @Override
13         public IntegerParameter addAliases(final String... aliasArray) {
14                 super.addAliases(aliasArray);
15                 return this;
16         }
17
18         public int getValue() {
19                 if (arguments.size() != 1)
20                         throw new RuntimeException("Parameter " + description
21                                         + " shall have exactly 1 argument.");
22                 return Integer.parseInt(arguments.get(0));
23         }
24
25         @Override
26         public IntegerParameter setMandatory() {
27                 mandatory = true;
28                 return this;
29         }
30
31         @Override
32         public java.lang.String describeFormat() {
33                 return "integer";
34         }
35
36         @Override
37         public boolean validate(final java.lang.String value) {
38                 try {
39                         java.lang.Integer.valueOf(value);
40                         return true;
41                 } catch (final NumberFormatException e) {
42                         return false;
43                 }
44         }
45
46 }