Changed license to CC0
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / commandline / parameterparser / parameter / IntegerParameter.java
1 /*
2  * Svjatoslav Commons - shared library of common functionality. Author: Svjatoslav Agejenko.
3  * This project is released under Creative Commons Zero (CC0) license.
4  */
5 package eu.svjatoslav.commons.commandline.parameterparser.parameter;
6
7 import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
8 import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
9
10 public class IntegerParameter extends Parameter<Integer, IntegerParameter> {
11
12     public IntegerParameter(final String description) {
13         super(description, ArgumentCount.SINGLE);
14     }
15
16     @Override
17     public java.lang.String describeFormat() {
18         return "integer";
19     }
20
21     @Override
22     public Integer getValue() {
23         if (arguments.size() != 1)
24             throw new RuntimeException("Parameter " + description
25                     + " shall have exactly 1 argument.");
26         return Integer.parseInt(arguments.get(0));
27     }
28
29     @Override
30     public boolean validate(final java.lang.String value) {
31         try {
32             java.lang.Integer.valueOf(value);
33             return true;
34         } catch (final NumberFormatException e) {
35             return false;
36         }
37     }
38 }