Maintenance: updated dependency library version. Fixed Maven repository URL.
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / commandline / TargetImageTypeParameter.java
1 package eu.svjatoslav.inspector.java.commandline;
2
3 import eu.svjatoslav.commons.cli_helper.parameter_parser.Parameter;
4 import eu.svjatoslav.commons.string.String2;
5 import eu.svjatoslav.inspector.java.structure.TargetImageType;
6
7 import java.util.Arrays;
8
9 import static eu.svjatoslav.commons.cli_helper.parameter_parser.ArgumentCount.SINGLE;
10
11 public class TargetImageTypeParameter extends Parameter<TargetImageType, TargetImageTypeParameter> {
12
13     public TargetImageTypeParameter(){
14         super("Target image type. Default is: svg.", SINGLE);
15     }
16
17     @Override
18     public String describeFormat() {
19         String2 result = new String2("");
20
21         Arrays.stream(TargetImageType.values())
22                 .forEach(targetImageType -> result.appendWithSeparator(", ", targetImageType.fileExtension));
23
24         result.prepend("options: ");
25
26         return result.toString();
27     }
28
29     @Override
30     public TargetImageType getValue() {
31         return TargetImageType.valueOf(arguments.get(0).toUpperCase());
32     }
33
34     @Override
35     public boolean validate(String value) {
36         try {
37             TargetImageType.valueOf(value.toUpperCase());
38         } catch (final IllegalArgumentException exception) {
39             return false;
40         }
41
42         return true;
43     }
44 }