From 4312b075c150b866916f957861e523d4b9cd7b7f Mon Sep 17 00:00:00 2001
From: Riegel <alexander.riegel@hft-stuttgart.de>
Date: Thu, 23 Jan 2025 15:56:24 +0100
Subject: [PATCH] Fix: Disable QualityADE for new top-level types

Disables writing to the QualityADE when parsing the newly added feature
types as a temporary fix. The QualityADE is only compatible with CityGML
Version 2.0, since the XML namespaces changed in Version 3.0.
Updating the ADE to be compatible with 2.0 and 3.0 is a bigger task,
a discussion if it should be updated vs. deprecation and removal is
required.
---
 .../citydoctor2/check/StreamCityGmlConsumer.java      | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/StreamCityGmlConsumer.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/StreamCityGmlConsumer.java
index 2ebf44d..f555a8e 100644
--- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/StreamCityGmlConsumer.java
+++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/StreamCityGmlConsumer.java
@@ -29,6 +29,9 @@ import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import de.hft.stuttgart.citydoctor2.datastructure.AbstractTunnel;
+import de.hft.stuttgart.citydoctor2.datastructure.CityFurniture;
+import de.hft.stuttgart.citydoctor2.datastructure.GenericCityObject;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.citygml4j.core.model.core.AbstractFeatureProperty;
@@ -139,8 +142,12 @@ public class StreamCityGmlConsumer implements CityGmlConsumer {
 			pdfReporter.report(co);
 		}
 
-		// store quality ade datastructures in cityobject
-		QualityADEUtils.writeQualityAde(co, val);
+		// TODO: Update QualityADE to be compatible with CityGML 3.0 or deprecate it, unhandled top-level feature types are just skipped for now
+		if (!(co instanceof AbstractTunnel || co instanceof CityFurniture || co instanceof GenericCityObject)) {
+			// store quality ade datastructures in cityobject
+			QualityADEUtils.writeQualityAde(co, val);
+		}
+
 		// recreate geometry
 		co.reCreateGeometries(gmlFactory, config.getParserConfiguration());
 
-- 
GitLab