Commit a9b6756d authored by Luna Riegel's avatar Luna Riegel
Browse files

Refactor: Improve toString() method

parent a193a6c8
...@@ -4,6 +4,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.CityObject; ...@@ -4,6 +4,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.GmlId; import de.hft.stuttgart.citydoctor2.datastructure.GmlId;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import org.jspecify.annotations.NonNull;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -11,6 +12,7 @@ import java.util.Collections; ...@@ -11,6 +12,7 @@ import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.StringJoiner;
public record CollisionRecord(Geometry subjectGeom, Geometry collidingGeom, GmlId subjectFeatureId, public record CollisionRecord(Geometry subjectGeom, Geometry collidingGeom, GmlId subjectFeatureId,
...@@ -33,4 +35,27 @@ public record CollisionRecord(Geometry subjectGeom, Geometry collidingGeom, GmlI ...@@ -33,4 +35,27 @@ public record CollisionRecord(Geometry subjectGeom, Geometry collidingGeom, GmlI
return Collections.unmodifiableMap(collisionMap); return Collections.unmodifiableMap(collisionMap);
} }
@Override
public @NonNull String toString() {
StringBuilder sb = new StringBuilder();
sb.append("CollisionRecord{ ");
sb.append("subjectFeature=").append(subjectFeatureId).append("; ");
sb.append("subjectGeom=").append(subjectGeom).append("; ");
sb.append("collidingFeature=").append(collidingFeatureId).append("; ");
sb.append("collidingGeom=").append(collidingGeom).append("; ");
sb.append("collisionMap=");
StringJoiner joiner = new StringJoiner(", ", "[","]; ");
for (Map.Entry<Polygon, List<Polygon>> entry : collisionMap.entrySet()) {
StringBuilder builder = new StringBuilder();
builder.append("{ subjectPolygon=").append(entry.getKey()).append("; ");
StringJoiner sj = new StringJoiner(", ","[","]; ");
sj.setEmptyValue("NULL");
entry.getValue().forEach(poly -> sj.add(poly.toString()));
builder.append("collidingPolygons=").append(sj).append("} ");
joiner.add(builder.toString());
}
sb.append(joiner);
sb.append("}");
return sb.toString();
}
} }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment