From 3188e3b42f98f63dc5f6e1057871e608da1c1984 Mon Sep 17 00:00:00 2001 From: Matthias Betz Date: Tue, 7 Jun 2022 11:16:30 +0200 Subject: [PATCH] added ring self intersection enum to xsd added visitor errors --- .../RingSelfIntersectionErrorAdapter.java | 8 +- .../quality/model/enums/RingSelfIntType.java | 2 +- .../quality/model/types/AbstractError.java | 8 +- .../model/types/AbstractGeometryError.java | 8 + .../model/types/AbstractPolygonError.java | 8 + .../model/types/AbstractRingError.java | 8 + .../model/types/AbstractSemanticError.java | 12 +- .../model/types/AbstractSolidError.java | 16 +- .../types/AllPolygonsOrientedWrongError.java | 8 + .../types/ConsecutivePointsSameError.java | 8 + .../quality/model/types/HoleOutsideError.java | 8 + .../model/types/InnerRingsNestedError.java | 8 + .../types/InteriorDisconnectedError.java | 9 + .../model/types/IntersectingRingsError.java | 8 + .../model/types/MultipleComponentsError.java | 7 + .../model/types/NonManifoldEdgeError.java | 7 + .../model/types/NonManifoldVertexError.java | 8 + .../types/OrientationRingsSameError.java | 8 + .../model/types/PlanarDistancePlaneError.java | 8 + .../types/PlanarNormalsDeviationError.java | 8 + .../types/PolygonWrongOrientationError.java | 7 + .../model/types/RingNotClosedError.java | 8 + .../types/RingSelfIntersectionError.java | 7 + .../model/types/RingTooFewPointsError.java | 8 + .../types/SemanticAttributeMissingError.java | 8 + .../SemanticAttributeWrongValueError.java | 7 + .../model/types/SolidNotClosedError.java | 7 + .../types/SolidSelfIntersectionError.java | 8 + .../model/types/SolidTooFewPolygonsError.java | 8 + .../quality/model/types/ValidationResult.java | 10 ++ .../model/walker/ValidationErrorVisitor.java | 156 ++++++++++++++++++ .../src/main/resources/qualityAde.xsd | 12 +- .../stuttgart/quality/QualityAdeTests.java | 30 +--- .../SimpleSolid_Error_QualityADE.gml | 10 +- 34 files changed, 407 insertions(+), 44 deletions(-) create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/walker/ValidationErrorVisitor.java diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/RingSelfIntersectionErrorAdapter.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/RingSelfIntersectionErrorAdapter.java index 0c61218..3051336 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/RingSelfIntersectionErrorAdapter.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/RingSelfIntersectionErrorAdapter.java @@ -53,10 +53,6 @@ public class RingSelfIntersectionErrorAdapter extends AbstractRingErrorAdapter edges) { this.components = asChild(edges); diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java index b38562c..bb43f2e 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java @@ -18,6 +18,7 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; import de.hft.stuttgart.quality.model.properties.EdgeListProperty; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; public class NonManifoldEdgeError extends AbstractSolidError { @@ -29,6 +30,12 @@ public class NonManifoldEdgeError extends AbstractSolidError { public EdgeListProperty getEdges() { return edges; } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } public void setEdges(EdgeListProperty edges) { this.edges = asChild(edges); diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java index 36a758c..0d8d6fe 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java @@ -19,6 +19,8 @@ import java.io.Serial; import org.xmlobjects.gml.model.geometry.DirectPosition; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class NonManifoldVertexError extends AbstractSolidError { @Serial @@ -33,5 +35,11 @@ public class NonManifoldVertexError extends AbstractSolidError { public void setVertex(DirectPosition vertex) { this.vertex = asChild(vertex); } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/OrientationRingsSameError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/OrientationRingsSameError.java index 287ad7a..1856639 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/OrientationRingsSameError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/OrientationRingsSameError.java @@ -17,6 +17,8 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class OrientationRingsSameError extends AbstractPolygonError { @Serial @@ -31,5 +33,11 @@ public class OrientationRingsSameError extends AbstractPolygonError { public void setLinearRing(String linearRing) { this.linearRing = linearRing; } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java index ae0b3bb..4e1c859 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java @@ -20,6 +20,8 @@ import java.io.Serial; import org.xmlobjects.gml.model.geometry.DirectPosition; import org.xmlobjects.gml.model.measures.Length; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class PlanarDistancePlaneError extends AbstractPolygonError { @Serial @@ -43,6 +45,12 @@ public class PlanarDistancePlaneError extends AbstractPolygonError { public void setDistance(Length distance) { this.distance = asChild(distance); } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } @Override public String toString() { diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java index 7f19339..c93fdce 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java @@ -19,6 +19,8 @@ import java.io.Serial; import org.xmlobjects.gml.model.measures.Angle; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class PlanarNormalsDeviationError extends AbstractPolygonError { @Serial @@ -33,5 +35,11 @@ public class PlanarNormalsDeviationError extends AbstractPolygonError { public void setDeviation(Angle deviation) { this.deviation = asChild(deviation); } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonWrongOrientationError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonWrongOrientationError.java index 6df9ef1..f6ed58d 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonWrongOrientationError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonWrongOrientationError.java @@ -18,6 +18,7 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; import de.hft.stuttgart.quality.model.properties.EdgeListProperty; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; public class PolygonWrongOrientationError extends AbstractSolidError { @@ -33,5 +34,11 @@ public class PolygonWrongOrientationError extends AbstractSolidError { public void setEdges(EdgeListProperty edges) { this.edges = edges; } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingNotClosedError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingNotClosedError.java index faf44a2..7805c3a 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingNotClosedError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingNotClosedError.java @@ -17,7 +17,15 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class RingNotClosedError extends AbstractRingError { + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } @Serial private static final long serialVersionUID = 3327214274004406000L; diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java index 240d47f..3fc1189 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java @@ -21,6 +21,7 @@ import org.xmlobjects.gml.model.geometry.DirectPosition; import de.hft.stuttgart.quality.model.enums.RingSelfIntType; import de.hft.stuttgart.quality.model.properties.EdgeProperty; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; public class RingSelfIntersectionError extends AbstractRingError { @@ -72,6 +73,12 @@ public class RingSelfIntersectionError extends AbstractRingError { public void setVertex2(DirectPosition vertex2) { this.vertex2 = asChild(vertex2); } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } @Override public String toString() { diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingTooFewPointsError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingTooFewPointsError.java index c8866b7..1f41556 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingTooFewPointsError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingTooFewPointsError.java @@ -17,7 +17,15 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class RingTooFewPointsError extends AbstractRingError { + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } @Serial private static final long serialVersionUID = 8057350098649982235L; diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeMissingError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeMissingError.java index 45ddcdb..3475d42 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeMissingError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeMissingError.java @@ -17,6 +17,8 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class SemanticAttributeMissingError extends AbstractSemanticError { @Serial @@ -49,5 +51,11 @@ public class SemanticAttributeMissingError extends AbstractSemanticError { public void setGeneric(boolean generic) { this.generic = generic; } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeWrongValueError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeWrongValueError.java index 2564a49..d0d0206 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeWrongValueError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeWrongValueError.java @@ -17,6 +17,8 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class SemanticAttributeWrongValueError extends AbstractSemanticError { @Serial @@ -49,5 +51,10 @@ public class SemanticAttributeWrongValueError extends AbstractSemanticError { public void setGeneric(boolean generic) { this.generic = generic; } + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java index 2e6e6e9..4e1c3d9 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java @@ -18,6 +18,7 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; import de.hft.stuttgart.quality.model.properties.EdgeListProperty; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; public class SolidNotClosedError extends AbstractSolidError { @@ -33,5 +34,11 @@ public class SolidNotClosedError extends AbstractSolidError { public void setEdges(EdgeListProperty edges) { this.edges = asChild(edges); } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidSelfIntersectionError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidSelfIntersectionError.java index 8ab1538..799e90a 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidSelfIntersectionError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidSelfIntersectionError.java @@ -17,6 +17,8 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class SolidSelfIntersectionError extends AbstractSolidError { @Serial @@ -40,5 +42,11 @@ public class SolidSelfIntersectionError extends AbstractSolidError { public void setPolygonId2(String polygonId2) { this.polygonId2 = polygonId2; } + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidTooFewPolygonsError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidTooFewPolygonsError.java index f3deede..3ee2e16 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidTooFewPolygonsError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidTooFewPolygonsError.java @@ -17,7 +17,15 @@ package de.hft.stuttgart.quality.model.types; import java.io.Serial; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; + public class SolidTooFewPolygonsError extends AbstractSolidError { + + @Override + public void accept(ValidationErrorVisitor visitor) { + super.accept(visitor); + visitor.visit(this); + } @Serial private static final long serialVersionUID = 1987841643971824973L; diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java index 308ddb2..e795e5f 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java @@ -25,6 +25,7 @@ import org.xmlobjects.model.ChildList; import de.hft.stuttgart.quality.model.enums.ResultType; import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty; +import de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor; public class ValidationResult extends GMLObject implements ADEObject { @@ -61,5 +62,14 @@ public class ValidationResult extends GMLObject implements ADEObject { public void setResultType(ResultType resultType) { this.resultType = resultType; } + + public void accept(ValidationErrorVisitor visitor) { + for (AbstractErrorProperty errorProp : errors) { + if (errorProp.getObject() == null) { + continue; + } + errorProp.getObject().accept(visitor); + } + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/walker/ValidationErrorVisitor.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/walker/ValidationErrorVisitor.java new file mode 100644 index 0000000..e125575 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/walker/ValidationErrorVisitor.java @@ -0,0 +1,156 @@ +/*- + * Copyright 2022 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model.walker; + +import de.hft.stuttgart.quality.model.types.AbstractError; +import de.hft.stuttgart.quality.model.types.AbstractGeometryError; +import de.hft.stuttgart.quality.model.types.AbstractPolygonError; +import de.hft.stuttgart.quality.model.types.AbstractRingError; +import de.hft.stuttgart.quality.model.types.AbstractSemanticError; +import de.hft.stuttgart.quality.model.types.AbstractSolidError; +import de.hft.stuttgart.quality.model.types.AllPolygonsOrientedWrongError; +import de.hft.stuttgart.quality.model.types.ConsecutivePointsSameError; +import de.hft.stuttgart.quality.model.types.HoleOutsideError; +import de.hft.stuttgart.quality.model.types.InnerRingsNestedError; +import de.hft.stuttgart.quality.model.types.InteriorDisconnectedError; +import de.hft.stuttgart.quality.model.types.IntersectingRingsError; +import de.hft.stuttgart.quality.model.types.MultipleComponentsError; +import de.hft.stuttgart.quality.model.types.NonManifoldEdgeError; +import de.hft.stuttgart.quality.model.types.NonManifoldVertexError; +import de.hft.stuttgart.quality.model.types.OrientationRingsSameError; +import de.hft.stuttgart.quality.model.types.PlanarDistancePlaneError; +import de.hft.stuttgart.quality.model.types.PlanarNormalsDeviationError; +import de.hft.stuttgart.quality.model.types.PolygonWrongOrientationError; +import de.hft.stuttgart.quality.model.types.RingNotClosedError; +import de.hft.stuttgart.quality.model.types.RingSelfIntersectionError; +import de.hft.stuttgart.quality.model.types.RingTooFewPointsError; +import de.hft.stuttgart.quality.model.types.SemanticAttributeMissingError; +import de.hft.stuttgart.quality.model.types.SemanticAttributeWrongValueError; +import de.hft.stuttgart.quality.model.types.SolidNotClosedError; +import de.hft.stuttgart.quality.model.types.SolidSelfIntersectionError; +import de.hft.stuttgart.quality.model.types.SolidTooFewPolygonsError; + +public interface ValidationErrorVisitor { + + default void visit(AbstractError err) { + + } + + default void visit(AbstractGeometryError err) { + + } + + default void visit(AbstractPolygonError err) { + + } + + default void visit(AbstractRingError err) { + + } + + default void visit(AbstractSemanticError err) { + + } + + default void visit(AbstractSolidError err) { + + } + + default void visit(AllPolygonsOrientedWrongError err) { + + } + + default void visit(ConsecutivePointsSameError err) { + + } + + default void visit(HoleOutsideError err) { + + } + + default void visit(InnerRingsNestedError err) { + + } + + default void visit(IntersectingRingsError err) { + + } + + default void visit(InteriorDisconnectedError err) { + + } + + default void visit(MultipleComponentsError err) { + + } + + default void visit(NonManifoldEdgeError err) { + + } + + default void visit(NonManifoldVertexError err) { + + } + + default void visit(OrientationRingsSameError err) { + + } + + default void visit(PlanarDistancePlaneError err) { + + } + + default void visit(PlanarNormalsDeviationError err) { + + } + + default void visit(PolygonWrongOrientationError err) { + + } + + default void visit(RingNotClosedError err) { + + } + + default void visit(RingSelfIntersectionError err) { + + } + + default void visit(RingTooFewPointsError err) { + + } + + default void visit(SemanticAttributeMissingError err) { + + } + + default void visit(SemanticAttributeWrongValueError err) { + + } + + default void visit(SolidNotClosedError err) { + + } + + default void visit(SolidSelfIntersectionError err) { + + } + + default void visit(SolidTooFewPolygonsError err) { + + } + +} diff --git a/citygml4j-quality-ade/src/main/resources/qualityAde.xsd b/citygml4j-quality-ade/src/main/resources/qualityAde.xsd index 31d1e64..0362e46 100644 --- a/citygml4j-quality-ade/src/main/resources/qualityAde.xsd +++ b/citygml4j-quality-ade/src/main/resources/qualityAde.xsd @@ -327,11 +327,11 @@ - - + + @@ -550,6 +550,14 @@ + + + + + + + + diff --git a/citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java b/citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java index aaae630..ac3fdfd 100644 --- a/citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java +++ b/citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java @@ -15,7 +15,6 @@ */ package de.hft.stuttgart.quality; -import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.ByteArrayInputStream; @@ -23,8 +22,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.nio.file.Path; -import java.nio.file.Paths; import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.List; @@ -43,17 +40,12 @@ import org.citygml4j.core.ade.ADERegistry; import org.citygml4j.core.model.CityGMLVersion; import org.citygml4j.core.model.building.Building; import org.citygml4j.core.model.core.AbstractCityObjectProperty; -import org.citygml4j.core.model.core.AbstractFeature; import org.citygml4j.core.model.core.AbstractFeatureProperty; import org.citygml4j.core.model.core.CityModel; import org.citygml4j.core.util.CityGMLConstants; import org.citygml4j.xml.CityGMLContext; import org.citygml4j.xml.CityGMLContextException; import org.citygml4j.xml.module.citygml.CoreModule; -import org.citygml4j.xml.reader.ChunkOptions; -import org.citygml4j.xml.reader.CityGMLInputFactory; -import org.citygml4j.xml.reader.CityGMLReadException; -import org.citygml4j.xml.reader.CityGMLReader; import org.citygml4j.xml.schema.CityGMLSchemaHandler; import org.citygml4j.xml.writer.CityGMLOutputFactory; import org.citygml4j.xml.writer.CityGMLWriteException; @@ -141,26 +133,6 @@ class QualityAdeTests { ADERegistry.getInstance().loadADE(new QualityADEContext()); } - @Test - void testReadingModel() throws CityGMLContextException, CityGMLReadException { - CityGMLContext context = CityGMLContext.newInstance(); - - CityGMLInputFactory in = context.createCityGMLInputFactory() - .withChunking(ChunkOptions.chunkByProperties(chunkProperties).skipCityModel(false)); - - Path file = Paths.get("src/test/resources/SimpleSolid_Error_QualityADE.gml"); - - try (CityGMLReader reader = in.createCityGMLReader(file)) { - while (reader.hasNext()) { - AbstractFeature feature = reader.next(); - if (feature instanceof Building) { - List adeProperties = feature.getADEProperties(CityObjectProperties.class); - assertEquals(1, adeProperties.size()); - } - } - } - } - @Test void testAllPolygonsOrientedWrong() throws ADEException, CityGMLContextException, CityGMLWriteException, SAXException, IOException, SchemaHandlerException { @@ -399,7 +371,7 @@ class QualityAdeTests { edge.setTo(new DirectPosition(5, 6, 7)); err.setEdge1(new EdgeProperty(edge)); err.setEdge2(new EdgeProperty(edge)); - err.setType(RingSelfIntType.EDGE_INTERSECTS_EDGE); + err.setType(RingSelfIntType.EDGE_INTERSECTION); err.setVertex1(new DirectPosition(1, 2, 3)); res.getErrors().add(new AbstractErrorProperty(err)); diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml index 26300b9..c62b369 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml @@ -12,6 +12,14 @@ referenziert CityGML 2.0 linear ring _Simple_BD.1_PG.6_LR.1 beinhaltet zwei aufeinander folgende Punkte, die identisch sind. 10.5.2017 Author: V. Coors, HFT Stuttgart Lizenz: --> + Building-Unit-House + + + 457841 5439082 111 + 457854 5439093 121 + + + @@ -24,7 +32,7 @@ 11.5 10.0 4.5 - OK + ERROR -- GitLab