From 287b5edf92378247ea13d564bf763db51e077994 Mon Sep 17 00:00:00 2001
From: Riegel <alexander.riegel@hft-stuttgart.de>
Date: Thu, 12 Dec 2024 13:10:54 +0100
Subject: [PATCH] Reformat: Add listener support to ZipEntry stream check

---
 .../java/de/hft/stuttgart/citydoctor2/check/Checker.java | 8 ++++++--
 .../de/hft/stuttgart/citydoctor2/check/CheckerTest.java  | 9 +++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/Checker.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/Checker.java
index e3cb538..c24d744 100644
--- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/Checker.java
+++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/Checker.java
@@ -741,6 +741,11 @@ public class Checker {
 
     public static void streamCheck(CityGmlZipEntry entry, String xmlOutput, String pdfOutput, ValidationConfiguration config,
                                    String outputFile) throws IOException, CityGmlParseException {
+        streamCheck(entry, xmlOutput, pdfOutput, config, null, outputFile);
+    }
+
+    public static void streamCheck(CityGmlZipEntry entry, String xmlOutput, String pdfOutput, ValidationConfiguration config,
+                                   FeatureCheckedListener l, String outputFile) throws IOException, CityGmlParseException {
         try (BufferedOutputStream xmlBos = getXmlOutputMaybe(xmlOutput);
              BufferedOutputStream pdfBos = getPdfOutputMaybe(pdfOutput)) {
             Checker c = new Checker(config, null);
@@ -754,7 +759,7 @@ public class Checker {
             try (CityGmlZipEntryFile entryFile = new CityGmlZipEntryFile(entry)) {
                 SvrlContentHandler handler = executeSchematronValidationIfAvailable(config, entryFile.getInputStream());
 
-                CityGmlConsumer con = new StreamCityGmlConsumer(c, xmlReporter, pdfReporter, handler, config, null);
+                CityGmlConsumer con = new StreamCityGmlConsumer(c, xmlReporter, pdfReporter, handler, config, l);
                 // parse and validate
                 CityGmlParser.streamCityGml(entry, config.getParserConfiguration(), con, outputFile);
 
@@ -767,7 +772,6 @@ public class Checker {
         }
     }
 
-
     public static void streamCheck(File inputFile, String xmlOutput, String pdfOutput, ValidationConfiguration config,
                                    String outputFile) throws IOException, CityGmlParseException {
         streamCheck(inputFile, xmlOutput, pdfOutput, config, null, outputFile);
diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/check/CheckerTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/check/CheckerTest.java
index 7b1a04d..3efdefd 100644
--- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/check/CheckerTest.java
+++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/check/CheckerTest.java
@@ -19,6 +19,7 @@
 package de.hft.stuttgart.citydoctor2.check;
 
 import de.hft.stuttgart.citydoctor2.CityDoctorValidation;
+import de.hft.stuttgart.citydoctor2.checks.util.FeatureCheckedListener;
 import de.hft.stuttgart.citydoctor2.datastructure.Building;
 import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel;
 import de.hft.stuttgart.citydoctor2.exceptions.CityDoctorWriteException;
@@ -117,14 +118,18 @@ public class CheckerTest {
     }
 
     @Test
-    public void testZipEntryChecking() throws CityGmlParseException, IOException, InvalidGmlFileException, CityDoctorWriteException {
+    public void testZipEntryChecking() throws CityGmlParseException, IOException {
         CityGmlZipArchive cgmlArch = CityGmlZipArchive.register("src/test/resources/zipArchive.zip");
         assertNotNull(cgmlArch);
         cgmlArch.mountArchive(new ParserConfiguration(8, false));
         ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig();
+        FeatureCheckedListener l = co -> {
+            assertTrue(co.isValidated());
+        };
         for (CityGmlZipEntry entry : cgmlArch.getEntries()) {
-            Checker.streamCheck(entry, null, null, config, null);
+            Checker.streamCheck(entry, null, null, config, l, null);
         }
+
     }
 
 }
-- 
GitLab