Added all important commandline options. Updated documentation.
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / commandline / TargetImageTypeParameter.java
diff --git a/src/main/java/eu/svjatoslav/inspector/java/commandline/TargetImageTypeParameter.java b/src/main/java/eu/svjatoslav/inspector/java/commandline/TargetImageTypeParameter.java
new file mode 100644 (file)
index 0000000..7151b8a
--- /dev/null
@@ -0,0 +1,43 @@
+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;
+    }
+}