diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/reporting/pdf/PdfStreamReporter.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/reporting/pdf/PdfStreamReporter.java index f1f5374e7a0060b74c689fcd1806e0ae2f8dc389..a71145a99f95204fe8f8c681d9840b69aab3d71a 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/reporting/pdf/PdfStreamReporter.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/reporting/pdf/PdfStreamReporter.java @@ -29,6 +29,11 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; +import de.hft.stuttgart.citydoctor2.datastructure.AbstractBuilding; +import de.hft.stuttgart.citydoctor2.datastructure.AbstractFurniture; +import de.hft.stuttgart.citydoctor2.datastructure.AbstractRoom; +import de.hft.stuttgart.citydoctor2.datastructure.BuildingUnit; +import de.hft.stuttgart.citydoctor2.datastructure.Storey; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -290,14 +295,9 @@ public class PdfStreamReporter implements StreamReporter { Building b = (Building) co; for (BuildingPart bp : b.getBuildingParts()) { sectionMap.put(bp.getGmlId().getGmlString(), bSection); - writeCheckResultForBuildingPart(bp, bSection); - } - for (BoundarySurface bs : b.getBoundarySurfaces()) { - writeCheckResultForBoundarySurface(bs, bSection); - } - for (Installation bi : b.getBuildingInstallations()) { - writeCheckResultForInstallation(bi, bSection); + writeCheckResultForAbstractBuilding(bp, bSection); } + writeCheckResultForAbstractBuilding(b, bSection); } private void writeCheckResultForInstallation(Installation bi, Section root) { @@ -327,6 +327,118 @@ public class PdfStreamReporter implements StreamReporter { } } + private void writeCheckResultForAbstractBuilding(AbstractBuilding ab, Section root) { + Map results = ab.getAllCheckResults(); + writeCheckResults(results.values(), root); + for (Geometry geom : ab.getGeometries()) { + writeCheckResultForGeometry(geom, root); + } + for (AbstractRoom ar : ab.getBuildingRooms()) { + writeCheckResultForRoom(ar, root); + } + for (AbstractFurniture af : ab.getBuildingRoomFurnitureList()) { + writeCheckResultForAbstractFurniture(af, root); + } + for (Storey s : ab.getBuildingStoreys()) { + writeCheckResultForStorey(s, root); + } + for (BuildingUnit bu : ab.getBuildingUnits()) { + writeCheckResultForBuildingUnit(bu, root); + } + for (BoundarySurface bs : ab.getBoundarySurfaces()) { + writeCheckResultForBoundarySurface(bs, root); + } + for (Installation bi : ab.getBuildingInstallations()) { + writeCheckResultForInstallation(bi, root); + } + } + + private void writeCheckResultForStorey(Storey s, Section root) { + Map results = s.getAllCheckResults(); + writeCheckResults(results.values(), root); + for (Geometry geom : s.getGeometries()) { + writeCheckResultForGeometry(geom, root); + } + for (AbstractRoom ar : s.getBuildingRooms()) { + writeCheckResultForRoom(ar, root); + } + for (BuildingUnit bu : s.getBuildingUnits()) { + writeCheckResultForBuildingUnit(bu, root); + } + for (AbstractFurniture af : s.getBuildingRoomFurnitureList()) { + writeCheckResultForAbstractFurniture(af, root); + } + for (BoundarySurface bs : s.getBoundarySurfaces()) { + writeCheckResultForBoundarySurface(bs, root); + } + for (Installation bi : s.getBuildingInstallations()) { + writeCheckResultForInstallation(bi, root); + } + } + + private void writeCheckResultForBuildingUnit(BuildingUnit bu, Section root) { + Map results = bu.getAllCheckResults(); + writeCheckResults(results.values(), root); + for (Geometry geom : bu.getGeometries()) { + writeCheckResultForGeometry(geom, root); + } + for (AbstractRoom ar : bu.getBuildingRooms()) { + writeCheckResultForRoom(ar, root); + } + for (Storey s : bu.getStoreys()) { + writeCheckResultForStorey(s, root); + } + for (AbstractFurniture af : bu.getBuildingRoomFurnitureList()) { + writeCheckResultForAbstractFurniture(af, root); + } + for (BoundarySurface bs : bu.getBoundarySurfaces()) { + writeCheckResultForBoundarySurface(bs, root); + } + for (Installation bi : bu.getBuildingInstallations()) { + writeCheckResultForInstallation(bi, root); + } + } + + + private void writeCheckResultForAbstractTunnel(AbstractTunnel at, Section root) { + Map results = at.getAllCheckResults(); + writeCheckResults(results.values(), root); + for (TunnelPart tp : at.getTunnelParts()) { + sectionMap.put(tp.getGmlId().getGmlString(), root); + writeCheckResultForAbstractTunnel(tp, root); + } + for (Geometry geom : at.getGeometries()) { + writeCheckResultForGeometry(geom, root); + } + for (AbstractRoom ar : at.getTunnelHollows()) { + writeCheckResultForRoom(ar, root); + } + for (TunnelConstructiveElement te : at.getTunnelConstructiveElements()) { + writeCheckResultForTunnelConstructiveElement(te, root); + } + for (AbstractFurniture tf : at.getTunnelFurniture()) { + writeCheckResultForAbstractFurniture(tf, root); + } + for (BoundarySurface bs : at.getBoundarySurfaces()) { + writeCheckResultForBoundarySurface(bs, root); + } + for (Installation bi : at.getTunnelInstallations()) { + writeCheckResultForInstallation(bi, root); + } + + } + + private void writeCheckResultForTunnelConstructiveElement(TunnelConstructiveElement te, Section root) { + Map results = te.getAllCheckResults(); + writeCheckResults(results.values(), root); + for (Geometry geom : te.getGeometries()) { + writeCheckResultForGeometry(geom, root); + } + for (BoundarySurface bs : te.getBoundarySurfaces()) { + writeCheckResultForBoundarySurface(bs, root); + } + } + private void writeErrorForCityObject(CityObject co, Section section) { Map results = co.getAllCheckResults(); writeCheckResults(results.values(), section); @@ -343,6 +455,31 @@ public class PdfStreamReporter implements StreamReporter { } } + private void writeCheckResultForAbstractFurniture(AbstractFurniture af, Section root) { + Map results = af.getAllCheckResults(); + writeCheckResults(results.values(), root); + for (Geometry geom : af.getGeometries()) { + writeCheckResultForGeometry(geom, root); + } + for (BoundarySurface bs : af.getBoundarySurfaceList()) { + writeCheckResultForBoundarySurface(bs, root); + } + } + + private void writeCheckResultForRoom(AbstractRoom ar, Section root) { + Map results = ar.getAllCheckResults(); + writeCheckResults(results.values(), root); + for (Geometry geom : ar.getGeometries()) { + writeCheckResultForGeometry(geom, root); + } + for (Installation in : ar.getRoomInstallations()) { + writeCheckResultForInstallation(in, root); + } + for (BoundarySurface bs : ar.getBoundarySurfaces()) { + writeCheckResultForBoundarySurface(bs, root); + } + } + private void writeCheckResultForOpening(Opening o, Section root) { Map results = o.getAllCheckResults(); writeCheckResults(results.values(), root);