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
19f5db34
Commit
19f5db34
authored
Dec 16, 2025
by
Luna Riegel
Browse files
Fix: Defer utility visitors to ConcretePolygon
parent
17359af8
Changes
1
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/LinkedPolygon.java
View file @
19f5db34
...
@@ -19,8 +19,11 @@
...
@@ -19,8 +19,11 @@
package
de.hft.stuttgart.citydoctor2.datastructure
;
package
de.hft.stuttgart.citydoctor2.datastructure
;
import
de.hft.stuttgart.citydoctor2.check.Check
;
import
de.hft.stuttgart.citydoctor2.check.Check
;
import
de.hft.stuttgart.citydoctor2.check.CheckError
;
import
de.hft.stuttgart.citydoctor2.check.CheckId
;
import
de.hft.stuttgart.citydoctor2.check.CheckId
;
import
de.hft.stuttgart.citydoctor2.check.CheckResult
;
import
de.hft.stuttgart.citydoctor2.check.CheckResult
;
import
de.hft.stuttgart.citydoctor2.check.Checkable
;
import
de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor
;
import
de.hft.stuttgart.citydoctor2.check.CheckableVisitor
;
import
de.hft.stuttgart.citydoctor2.check.CheckableVisitor
;
import
de.hft.stuttgart.citydoctor2.math.Vector3d
;
import
de.hft.stuttgart.citydoctor2.math.Vector3d
;
import
de.hft.stuttgart.citydoctor2.tesselation.TesselatedPolygon
;
import
de.hft.stuttgart.citydoctor2.tesselation.TesselatedPolygon
;
...
@@ -62,6 +65,52 @@ public class LinkedPolygon extends Polygon {
...
@@ -62,6 +65,52 @@ public class LinkedPolygon extends Polygon {
}
}
}
}
@Override
public
boolean
hasExistingGmlId
()
{
return
poly
.
hasExistingGmlId
();
}
@Override
public
void
setValidated
(
boolean
validated
)
{
// Linked polys themselves are not checked
}
@Override
public
boolean
isValidated
()
{
return
poly
.
isValidated
();
}
//TODO: Think how to handle this, as it violates class contract if ignored
@Override
public
void
prepareForChecking
()
{
// Linked polys themselves are not checked
}
@Override
public
void
clearMetaInformation
()
{
// Linked polys themselves are not checked
}
@Override
public
boolean
hasError
(
CheckId
checkIdentifier
)
{
return
poly
.
hasError
(
checkIdentifier
);
}
@Override
public
boolean
hasAnyError
()
{
return
poly
.
hasAnyError
();
}
@Override
public
void
collectContainedErrors
(
List
<
CheckError
>
errors
)
{
poly
.
collectContainedErrors
(
errors
);
}
@Override
public
void
collectErrors
(
List
<
CheckError
>
errors
)
{
poly
.
collectErrors
(
errors
);
}
@Override
@Override
public
CheckResult
getCheckResult
(
Check
c
)
{
public
CheckResult
getCheckResult
(
Check
c
)
{
return
poly
.
getCheckResult
(
c
);
return
poly
.
getCheckResult
(
c
);
...
@@ -104,8 +153,12 @@ public class LinkedPolygon extends Polygon {
...
@@ -104,8 +153,12 @@ public class LinkedPolygon extends Polygon {
@Override
@Override
public
void
accept
(
CheckableVisitor
c
)
{
public
void
accept
(
CheckableVisitor
c
)
{
// linked polygons are not checked
// LinkedPolygon should ignore Checks, as their referenced ConcretePolygon must be within the same TopLevelFeature.
setValidated
(
true
);
// Checks always start iterating from a TopLevelFeature and thus will visit the referenced ConcretePolygon.
if
(!
c
.
isValidator
()){
// Utility Visitors get passed to the ConcretePolygon, as they can start iterating from a sub-CityObject.
poly
.
accept
(
c
);
}
}
}
@Override
@Override
...
...
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