From 7dea019b2f034b4d427e6724cf9ee692a2fbd764 Mon Sep 17 00:00:00 2001
From: Riegel <alexander.riegel@hft-stuttgart.de>
Date: Mon, 2 Dec 2024 09:40:55 +0100
Subject: [PATCH] Refactor: Add first implementation of PicoCLI for CLI rework

---
 .../citydoctor2/CityDoctorValidationCLI.java  | 39 +++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidationCLI.java

diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidationCLI.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidationCLI.java
new file mode 100644
index 0000000..32adb49
--- /dev/null
+++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidationCLI.java
@@ -0,0 +1,39 @@
+package de.hft.stuttgart.citydoctor2;
+
+import picocli.CommandLine;
+import picocli.CommandLine.Command;
+import picocli.CommandLine.Option;
+import picocli.CommandLine.Parameters;
+
+import java.util.concurrent.Callable;
+
+@Command(name =  "citydoctor2", mixinStandardHelpOptions = true, description = "Validates CityGML files according to a provided validation-plan.")
+public class CityDoctorValidationCLI implements Callable<Integer> {
+
+    @Option(names = {"-i" , "--in" , "--input"},
+            description = "Filepath of the CityGML file.",
+            required = true)
+    private String input;
+
+    @Option(names = {"-c" , "--config" , "--configuration", "--plan"},
+            description = "Filepath of the validation configuration .yml",
+            required = true)
+    private String config;
+
+    @Option(names = {"-x" , "--xml" , "--xmlReport"},
+            description = "Create a XML validation report at target location")
+    private String xmlReport;
+
+    @Option(names = {"-p" , "--pdf" , "--pdfReport"},
+            description = "Create a PDF validation report at target location")
+    private String pdfReport;
+
+    @Option(names = {"-o" , "--out" , "--output"},
+            description = "Create a validated copy of the CityGML input with QualityADE at target location.")
+    private String output;
+
+    @Override
+    public Integer call() throws Exception {
+        return 0;
+    }
+}
-- 
GitLab