Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
CityDoctor2
Commits
d900ea38
Commit
d900ea38
authored
Feb 11, 2026
by
Luna Riegel
Browse files
Feat: Add FeatureCollisionError
parent
26d87dcf
Changes
1
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/FeatureCollisionError.java
0 → 100644
View file @
d900ea38
package
de.hft.stuttgart.citydoctor2.check.error
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.check.ErrorId
;
import
de.hft.stuttgart.citydoctor2.check.ErrorReport
;
import
de.hft.stuttgart.citydoctor2.check.ErrorType
;
import
de.hft.stuttgart.citydoctor2.check.ErrorVisitor
;
import
de.hft.stuttgart.citydoctor2.check.HealingMethod
;
import
de.hft.stuttgart.citydoctor2.check.ModificationListener
;
import
de.hft.stuttgart.citydoctor2.datastructure.CityObject
;
import
de.hft.stuttgart.citydoctor2.datastructure.Geometry
;
import
de.hft.stuttgart.citydoctor2.datastructure.GmlElement
;
import
de.hft.stuttgart.citydoctor2.datastructure.GmlId
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.StringJoiner
;
public
class
FeatureCollisionError
implements
CheckError
{
private
final
CityObject
subjectFeature
;
private
final
Geometry
subjectGeom
;
private
final
Geometry
collidingGeom
;
private
final
GmlId
collidingFeatureId
;
private
final
Map
<
Polygon
,
List
<
Polygon
>>
collisionMap
;
public
FeatureCollisionError
(
CityObject
subjectFeature
,
Geometry
subjectGeom
,
GmlId
collidingFeatureId
,
Geometry
collidingGeom
,
Map
<
Polygon
,
List
<
Polygon
>>
collisionMap
)
{
this
.
subjectFeature
=
subjectFeature
;
this
.
subjectGeom
=
subjectGeom
;
this
.
collidingFeatureId
=
collidingFeatureId
;
this
.
collidingGeom
=
collidingGeom
;
this
.
collisionMap
=
collisionMap
;
}
@Override
public
ErrorType
getType
()
{
return
ErrorType
.
ERROR
;
}
@Override
public
ErrorId
getErrorId
()
{
return
ErrorId
.
TO_FEATURE_COLLISION
;
}
@Override
public
GmlElement
getFeature
()
{
return
subjectFeature
;
}
@Override
public
void
accept
(
ErrorVisitor
errorVisitor
)
{
//TODO: Add this CheckError to the errorVisitor
}
@Override
public
boolean
accept
(
HealingMethod
method
,
ModificationListener
l
)
{
return
false
;
}
@Override
public
void
report
(
ErrorReport
report
)
{
report
.
add
(
"Geometry"
,
subjectGeom
.
getGmlId
().
toString
());
report
.
add
(
"Colliding with Feature"
,
collidingFeatureId
.
toString
());
report
.
add
(
"In Geometry"
,
collidingGeom
.
getGmlId
().
toString
());
collisionMap
.
forEach
((
subjectPoly
,
collisionList
)
->
{
StringJoiner
sj
=
new
StringJoiner
(
", "
);
collisionList
.
forEach
(
polygon
->
sj
.
add
(
polygon
.
getGmlId
().
toString
()));
report
.
add
(
"On Subject Polygon"
,
subjectPoly
.
toString
());
report
.
add
(
"With Polygons"
,
sj
.
toString
());
});
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment