282be4e10140555bd5d68fb3d4586186dfbbdcdb
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / commandline / parameterparser / parameter / IntegerParameter.java
1 /*
2  * Svjatoslav Commons - shared library of common functionality.
3  * Copyright ©2012-2019, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of version 3 of the GNU Lesser General Public License
7  * or later as published by the Free Software Foundation.
8  */
9
10 package eu.svjatoslav.commons.commandline.parameterparser.parameter;
11
12 import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
13 import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
14
15 public class IntegerParameter extends Parameter<Integer, IntegerParameter> {
16
17     public IntegerParameter(final String description) {
18         super(description, ArgumentCount.SINGLE);
19     }
20
21     @Override
22     public java.lang.String describeFormat() {
23         return "integer";
24     }
25
26     @Override
27     public Integer getValue() {
28         if (arguments.size() != 1)
29             throw new RuntimeException("Parameter " + description
30                     + " shall have exactly 1 argument.");
31         return Integer.parseInt(arguments.get(0));
32     }
33
34     @Override
35     public boolean validate(final java.lang.String value) {
36         try {
37             java.lang.Integer.valueOf(value);
38             return true;
39         } catch (final NumberFormatException e) {
40             return false;
41         }
42     }
43 }