--- /dev/null
+package eu.svjatoslav.inspector.java.commandline;
+
+import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
+import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
+import eu.svjatoslav.commons.string.String2;
+import eu.svjatoslav.inspector.java.structure.TargetImageType;
+
+import java.util.Arrays;
+
+public class TargetImageTypeParameter extends Parameter<TargetImageType, TargetImageTypeParameter> {
+
+ public TargetImageTypeParameter(){
+ super("Target image type. Default is: svg.", ArgumentCount.SINGLE);
+ }
+
+ @Override
+ public String describeFormat() {
+ String2 result = new String2("");
+
+ Arrays.stream(TargetImageType.values())
+ .forEach(targetImageType -> result.addSuffix(", ", targetImageType.fileExtension));
+
+ result.addPrefix("options: ");
+
+ return result.toString();
+ }
+
+ @Override
+ public TargetImageType getValue() {
+ return TargetImageType.valueOf(arguments.get(0).toUpperCase());
+ }
+
+ @Override
+ public boolean validate(String value) {
+ try {
+ TargetImageType.valueOf(value.toUpperCase());
+ } catch (final IllegalArgumentException exception) {
+ return false;
+ }
+
+ return true;
+ }
+}