From 162d91e33031054302d4ec0079612e93b639e698 Mon Sep 17 00:00:00 2001
From: Riegel <alexander.riegel@hft-stuttgart.de>
Date: Wed, 13 Nov 2024 14:54:27 +0100
Subject: [PATCH] Add BridgeRoom Furniture to datastructure

---
 .../datastructure/BridgeObject.java           | 52 +++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java
index 6a02d0a..ac8e4aa 100644
--- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java
+++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/BridgeObject.java
@@ -52,6 +52,7 @@ public class BridgeObject extends CityObject {
     private final List<BridgeConstructiveElement> elements = new ArrayList<>(2);
     private final List<BoundarySurface> boundarySurfaces = new ArrayList<>(2);
     private final List<Installation> bridgeInstallations = new ArrayList<>(2);
+    private final List<BridgeRoomFurniture> bridgeFurniture = new ArrayList<>(2);
     private final List<BridgeRoom> bridgeRooms = new ArrayList<>(2);
     private AbstractBridge ab;
     private BridgeType type;
@@ -78,6 +79,10 @@ public class BridgeObject extends CityObject {
         return bridgeRooms;
     }
 
+    public List<BridgeRoomFurniture> getBridgeFurniture() {
+        return bridgeFurniture;
+    }
+
     @Override
     public void reCreateGeometries(GeometryFactory factory, ParserConfiguration config) {
         for (Geometry geom : getGeometries()) {
@@ -107,6 +112,9 @@ public class BridgeObject extends CityObject {
         for (BridgeRoom br : bridgeRooms) {
             br.reCreateGeometries(factory, config);
         }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            bri.reCreateGeometries(factory, config);
+        }
 
     }
 
@@ -157,6 +165,11 @@ public class BridgeObject extends CityObject {
         bridgeRooms.add(room);
     }
 
+    public void addBridgeFurniture(BridgeRoomFurniture furniture){
+        bridgeFurniture.add(furniture);
+        furniture.setParent(this);
+    }
+
     @Override
     public void clearAllContainedCheckResults() {
         super.clearAllContainedCheckResults();
@@ -175,6 +188,9 @@ public class BridgeObject extends CityObject {
         for (BridgeRoom br : bridgeRooms) {
             br.clearAllContainedCheckResults();
         }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            bri.clearAllContainedCheckResults();
+        }
     }
 
     @Override
@@ -195,6 +211,9 @@ public class BridgeObject extends CityObject {
         for (BridgeRoom br : bridgeRooms) {
             br.collectContainedErrors(errors);
         }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            bri.collectContainedErrors(errors);
+        }
 
     }
 
@@ -227,6 +246,11 @@ public class BridgeObject extends CityObject {
                 return true;
             }
         }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            if (bri.containsAnyError()) {
+                return true;
+            }
+        }
         return false;
     }
 
@@ -269,6 +293,11 @@ public class BridgeObject extends CityObject {
                 return true;
             }
         }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            if (bri.containsError(checkIdentifier)) {
+                return true;
+            }
+        }
         return false;
     }
 
@@ -303,6 +332,9 @@ public class BridgeObject extends CityObject {
         for (BridgeRoom br : bridgeRooms) {
             br.accept(c);
         }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            bri.accept(c);
+        }
 
     }
 
@@ -363,6 +395,9 @@ public class BridgeObject extends CityObject {
         for (BridgeRoom br : bridgeRooms) {
             br.unsetGmlGeometries();
         }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            bri.unsetGmlGeometries();
+        }
 
     }
 
@@ -390,6 +425,12 @@ public class BridgeObject extends CityObject {
         for (BridgeObject part : parts) {
             part.prepareForChecking();
         }
+        for (BridgeRoom br : bridgeRooms) {
+            br.prepareForChecking();
+        }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            bri.prepareForChecking();
+        }
     }
 
     @Override
@@ -414,6 +455,9 @@ public class BridgeObject extends CityObject {
         for (BridgeRoom br : bridgeRooms) {
             br.clearMetaInformation();
         }
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            bri.clearMetaInformation();
+        }
 
     }
 
@@ -440,6 +484,10 @@ public class BridgeObject extends CityObject {
             handler.addInstance(br);
         }
 
+        for (BridgeRoomFurniture bri : bridgeFurniture) {
+            handler.addInstance(bri);
+        }
+
     }
 
     public void anonymize() {
@@ -483,6 +531,10 @@ public class BridgeObject extends CityObject {
             getBridgeRooms().add(handler.getCopyInstance(br));
         }
 
+        for (BridgeRoomFurniture bri : originalBo.bridgeFurniture) {
+            getBridgeFurniture().add(handler.getCopyInstance(bri));
+        }
+
     }
 
     public List<BoundarySurface> getBoundarySurfaces() {
-- 
GitLab