From 571a3248d181da944f37d8da02786755eda5bf4c Mon Sep 17 00:00:00 2001 From: Matthias Betz Date: Wed, 30 Mar 2022 16:24:20 +0200 Subject: [PATCH] update model for citygml4j 3 and quality ade 1.4.0 --- .gitignore | 4 +- citygml4j-quality-ade/.gitignore | 2 + citygml4j-quality-ade/pom.xml | 14 +- .../stuttgart/quality/QualityADEContext.java | 29 +- .../stuttgart/quality/QualityADEModule.java | 66 +- ...dationError.java => QualityADEWalker.java} | 10 +- .../marshaller/QualityAdeMarshaller.java | 412 ------------ .../marshaller/QualityAdeUnmarshaller.java | 374 ----------- .../marshaller/ZonedDateTimeAdapter.java | 43 -- .../quality/model/AttributeMissing.java | 56 -- .../quality/model/AttributeWrongValue.java | 62 -- .../stuttgart/quality/model/ChildObject.java | 53 -- .../stuttgart/quality/model/HoleOutside.java | 43 -- .../quality/model/InteriorDisconnected.java | 33 - .../quality/model/IntersectingRings.java | 53 -- .../model/MultipleConnectedComponents.java | 47 -- .../quality/model/NonManifoldVertex.java | 44 -- .../model/NonPlanarNormalsDeviation.java | 44 -- .../quality/model/OrientationRingsSame.java | 43 -- .../model/PolygonWrongOrientation.java | 49 -- .../quality/model/RingNotClosed.java | 33 - .../quality/model/SolidSelfIntersection.java | 53 -- .../stuttgart/quality/model/Validation.java | 86 --- .../quality/model/ValidationResult.java | 57 -- .../model/{jaxb => enums}/ErrorId.java | 7 +- .../model/{jaxb => enums}/RequirementId.java | 6 +- .../model/{jaxb => enums}/ResultType.java | 7 +- .../{jaxb => enums}/RingSelfIntType.java | 7 +- .../{jaxb => enums}/TopLevelFeatureType.java | 7 +- .../quality/model/jaxb/Checking.java | 52 -- .../model/jaxb/ConsecutivePointsSameType.java | 50 -- .../quality/model/jaxb/EdgeType.java | 44 -- .../model/jaxb/InnerRingsNestedType.java | 42 -- .../jaxb/NonPlanarDistancePlaneType.java | 45 -- .../quality/model/jaxb/ObjectFactory.java | 61 -- .../quality/model/jaxb/PolygonErrorType.java | 37 -- .../jaxb/PolygonWrongOrientationType.java | 43 -- .../quality/model/jaxb/Requirement.java | 71 --- .../quality/model/jaxb/RingErrorType.java | 36 -- .../model/jaxb/RingSelfIntersectionType.java | 71 --- .../quality/model/jaxb/SemanticErrorType.java | 25 - .../quality/model/jaxb/SolidErrorType.java | 37 -- .../model/jaxb/SolidNotClosedType.java | 43 -- .../quality/model/jaxb/Statistics.java | 98 --- .../quality/model/jaxb/TooFewPointsType.java | 28 - .../model/jaxb/TooFewPolygonsType.java | 23 - .../model/jaxb/ValidationErrorType.java | 40 -- .../quality/model/jaxb/ValidationPlan.java | 65 -- .../model/jaxb/ValidationResultType.java | 54 -- .../quality/model/jaxb/package-info.java | 18 - .../properties/AbstractErrorProperty.java | 43 ++ .../AbstractGeometryErrorProperty.java | 43 ++ .../AbstractPolygonErrorProperty.java | 43 ++ .../properties/AbstractRingErrorProperty.java | 43 ++ .../AbstractSemanticErrorProperty.java | 43 ++ .../AbstractSolidErrorProperty.java | 43 ++ ...AllPolygonsOrientedWrongErrorProperty.java | 43 ++ .../model/properties/CheckingProperty.java | 43 ++ .../properties/ComponentListProperty.java | 43 ++ .../ConsecutivePointsSameErrorProperty.java | 43 ++ .../model/properties/EdgeListProperty.java | 43 ++ .../model/properties/EdgeProperty.java | 43 ++ .../model/properties/ErrorProperty.java | 43 ++ .../properties/FeatureStatisticsProperty.java | 43 ++ .../model/properties/FilterProperty.java | 43 ++ .../properties/GlobalParametersProperty.java | 43 ++ .../properties/HoleOutsideErrorProperty.java | 43 ++ .../InnerRingsNestedErrorProperty.java | 43 ++ .../InteriorDisconnectedErrorProperty.java | 43 ++ .../IntersectingRingsErrorProperty.java | 43 ++ .../MultipleComponentsErrorProperty.java | 43 ++ .../NonManifoldEdgeErrorProperty.java | 43 ++ .../NonManifoldVertexErrorProperty.java | 43 ++ .../OrientationRingsSameErrorProperty.java | 43 ++ .../model/properties/ParameterProperty.java | 43 ++ .../PlanarDistancePlaneErrorProperty.java | 43 ++ .../PlanarNormalsDeviationErrorProperty.java | 43 ++ .../properties/PolygonIdListProperty.java | 43 ++ .../PolygonWrongOrientationErrorProperty.java | 43 ++ .../model/properties/RequirementProperty.java | 43 ++ .../RingNotClosedErrorProperty.java | 43 ++ .../RingSelfIntersectionErrorProperty.java | 43 ++ .../RingTooFewPointsErrorProperty.java | 43 ++ ...SemanticAttributeMissingErrorProperty.java | 43 ++ ...anticAttributeWrongValueErrorProperty.java | 43 ++ .../SolidNotClosedErrorProperty.java | 43 ++ .../SolidSelfIntersectionErrorProperty.java | 43 ++ .../SolidTooFewPolygonsErrorProperty.java | 43 ++ .../model/properties/StatisticsProperty.java | 43 ++ .../properties/ValidationPlanProperty.java | 43 ++ .../model/properties/ValidationProperty.java | 43 ++ .../properties/ValidationResultProperty.java | 43 ++ .../quality/model/types/AbstractError.java | 27 + .../AbstractGeometryError.java} | 12 +- .../AbstractPolygonError.java} | 20 +- .../AbstractRingError.java} | 22 +- .../AbstractSemanticError.java} | 11 +- .../AbstractSolidError.java} | 23 +- .../types/AllPolygonsOrientedWrongError.java | 25 + .../Checking.java} | 27 +- .../ComponentList.java} | 37 +- .../ConsecutivePointsSameError.java} | 42 +- .../quality/model/{ => types}/Edge.java | 41 +- .../EdgeList.java} | 28 +- .../ErrorStatistics.java => types/Error.java} | 50 +- .../{jaxb => types}/FeatureStatistics.java | 46 +- .../Filter.java} | 35 +- .../quality/model/types/GlobalParameters.java | 44 ++ .../HoleOutsideError.java} | 21 +- .../InnerRingsNestedError.java} | 32 +- .../types/InteriorDisconnectedError.java | 25 + .../IntersectingRingsError.java} | 25 +- .../MultipleComponentsError.java} | 26 +- .../NonManifoldEdgeError.java} | 28 +- .../NonManifoldVertexError.java} | 24 +- .../OrientationRingsSameError.java} | 24 +- .../model/{jaxb => types}/Parameter.java | 46 +- .../PlanarDistancePlaneError.java} | 39 +- .../PlanarNormalsDeviationError.java} | 24 +- .../PolygonIdList.java} | 23 +- .../PolygonWrongOrientationError.java} | 28 +- .../quality/model/types/Requirement.java | 63 ++ .../RingNotClosedError.java} | 12 +- .../RingSelfIntersectionError.java} | 71 ++- .../RingTooFewPointsError.java} | 12 +- .../SemanticAttributeMissingError.java} | 12 +- .../SemanticAttributeWrongValueError.java} | 14 +- .../SolidNotClosedError.java} | 26 +- .../types/SolidSelfIntersectionError.java | 25 + .../model/types/SolidTooFewPolygonsError.java | 25 + .../quality/model/types/Statistics.java | 99 +++ .../Validation.java} | 60 +- .../quality/model/types/ValidationPlan.java | 65 ++ .../quality/model/types/ValidationResult.java | 64 ++ .../UncheckedMissingADESchemaException.java | 3 +- .../src/main/resources/qualityAde.xsd | 584 ------------------ .../stuttgart/quality/QualityAdeTests.java | 147 ++--- .../SimpleSolid_Error_QualityADE.gml | 365 ++++++++--- citygml4j-quality-ade/test.gml | 18 + 139 files changed, 3160 insertions(+), 3893 deletions(-) create mode 100644 citygml4j-quality-ade/.gitignore rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/{model/ValidationError.java => QualityADEWalker.java} (72%) delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeMarshaller.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeUnmarshaller.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/ZonedDateTimeAdapter.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeMissing.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeWrongValue.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ChildObject.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/HoleOutside.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InteriorDisconnected.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/IntersectingRings.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/MultipleConnectedComponents.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldVertex.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarNormalsDeviation.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/OrientationRingsSame.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonWrongOrientation.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingNotClosed.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidSelfIntersection.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Validation.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationResult.java rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb => enums}/ErrorId.java (88%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb => enums}/RequirementId.java (88%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb => enums}/ResultType.java (80%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb => enums}/RingSelfIntType.java (81%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb => enums}/TopLevelFeatureType.java (81%) delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Checking.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ConsecutivePointsSameType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/EdgeType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InnerRingsNestedType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarDistancePlaneType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ObjectFactory.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonErrorType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonWrongOrientationType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Requirement.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingErrorType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntersectionType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SemanticErrorType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidErrorType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidNotClosedType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Statistics.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPointsType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPolygonsType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationErrorType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationPlan.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationResultType.java delete mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/package-info.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractGeometryErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractPolygonErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractRingErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractSemanticErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractSolidErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AllPolygonsOrientedWrongErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/CheckingProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ComponentListProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ConsecutivePointsSameErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/EdgeListProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/EdgeProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/FeatureStatisticsProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/FilterProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/GlobalParametersProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/HoleOutsideErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/InnerRingsNestedErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/InteriorDisconnectedErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/IntersectingRingsErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/MultipleComponentsErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/NonManifoldEdgeErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/NonManifoldVertexErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/OrientationRingsSameErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ParameterProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PlanarDistancePlaneErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PlanarNormalsDeviationErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PolygonIdListProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PolygonWrongOrientationErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RequirementProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingNotClosedErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingSelfIntersectionErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingTooFewPointsErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SemanticAttributeMissingErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SemanticAttributeWrongValueErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidNotClosedErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidSelfIntersectionErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidTooFewPolygonsErrorProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/StatisticsProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationPlanProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationResultProperty.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractError.java rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/InteriorDisconnectedType.java => types/AbstractGeometryError.java} (67%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{PolygonError.java => types/AbstractPolygonError.java} (71%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/OrientationRingsSameType.java => types/AbstractRingError.java} (69%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{SemanticError.java => types/AbstractSemanticError.java} (67%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{SolidError.java => types/AbstractSolidError.java} (69%) create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AllPolygonsOrientedWrongError.java rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{AllPolygonsWrongOrientation.java => types/Checking.java} (50%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/MultipleConnectedComponentsType.java => types/ComponentList.java} (54%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{ConsecutivePointsSame.java => types/ConsecutivePointsSameError.java} (61%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{ => types}/Edge.java (65%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{NonManifoldEdge.java => types/EdgeList.java} (57%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/ErrorStatistics.java => types/Error.java} (51%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb => types}/FeatureStatistics.java (52%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/NonManifoldEdgeType.java => types/Filter.java} (50%) create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/GlobalParameters.java rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/HoleOutsideType.java => types/HoleOutsideError.java} (66%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{InnerRingsNested.java => types/InnerRingsNestedError.java} (70%) create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/InteriorDisconnectedError.java rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/IntersectingRingsType.java => types/IntersectingRingsError.java} (69%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{SolidNotClosed.java => types/MultipleComponentsError.java} (57%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{TooFewPoints.java => types/NonManifoldEdgeError.java} (54%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/NonManifoldVertexType.java => types/NonManifoldVertexError.java} (57%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{RingError.java => types/OrientationRingsSameError.java} (56%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb => types}/Parameter.java (58%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{NonPlanarDistancePlane.java => types/PlanarDistancePlaneError.java} (59%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/NonPlanarNormalsDeviationType.java => types/PlanarNormalsDeviationError.java} (59%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/Component.java => types/PolygonIdList.java} (63%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/SolidSelfIntersectionType.java => types/PolygonWrongOrientationError.java} (76%) create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Requirement.java rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/RingNotClosedType.java => types/RingNotClosedError.java} (67%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{RingSelfIntersection.java => types/RingSelfIntersectionError.java} (58%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/AllPolygonsWrongOrientationType.java => types/RingTooFewPointsError.java} (67%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/AttributeWrongValueType.java => types/SemanticAttributeMissingError.java} (79%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/AttributeMissingType.java => types/SemanticAttributeWrongValueError.java} (78%) rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{TooFewPolygons.java => types/SolidNotClosedError.java} (54%) create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidSelfIntersectionError.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidTooFewPolygonsError.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Statistics.java rename citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/{jaxb/ValidationType.java => types/Validation.java} (59%) create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java delete mode 100644 citygml4j-quality-ade/src/main/resources/qualityAde.xsd create mode 100644 citygml4j-quality-ade/test.gml diff --git a/.gitignore b/.gitignore index bccafff..8b4f9f0 100644 --- a/.gitignore +++ b/.gitignore @@ -148,7 +148,7 @@ fabric.properties ### Intellij Patch ### # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 -# *.iml + *.iml modules.xml .idea/misc.xml *.ipr @@ -271,6 +271,6 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk -idea/ +**/.idea/ # End of https://www.gitignore.io/api/java,maven,macos,linux,eclipse,windows,netbeans,intellij diff --git a/citygml4j-quality-ade/.gitignore b/citygml4j-quality-ade/.gitignore new file mode 100644 index 0000000..a2ca7a0 --- /dev/null +++ b/citygml4j-quality-ade/.gitignore @@ -0,0 +1,2 @@ +/.apt_generated_tests/ +*.iml diff --git a/citygml4j-quality-ade/pom.xml b/citygml4j-quality-ade/pom.xml index 4c65c09..4e26832 100644 --- a/citygml4j-quality-ade/pom.xml +++ b/citygml4j-quality-ade/pom.xml @@ -8,16 +8,20 @@ UTF-8 - 1.8 - 1.8 + 17 + 17 - org.citygml4j - citygml4j - 2.10.2 + citygml4j-core + 3.0.0-SNAPSHOT + + + org.citygml4j + citygml4j-xml + 3.0.0-SNAPSHOT diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java index f1e7d58..f7b70ba 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java @@ -18,36 +18,23 @@ package de.hft.stuttgart.quality; import java.util.Collections; import java.util.List; -import org.citygml4j.model.citygml.ade.binding.ADEContext; -import org.citygml4j.model.citygml.ade.binding.ADEMarshaller; -import org.citygml4j.model.citygml.ade.binding.ADEUnmarshaller; -import org.citygml4j.model.module.ade.ADEModule; +import org.citygml4j.core.visitor.ADEWalker; +import org.citygml4j.xml.ade.CityGMLADE; +import org.citygml4j.xml.module.ade.ADEModule; -import de.hft.stuttgart.quality.marshaller.QualityAdeMarshaller; -import de.hft.stuttgart.quality.marshaller.QualityAdeUnmarshaller; -public class QualityADEContext implements ADEContext { +public class QualityADEContext implements CityGMLADE { - private final List modules = Collections.singletonList(QualityADEModule.V0_1_3); + private final List modules = Collections.singletonList(QualityADEModule.V0_1_4); @Override public List getADEModules() { return modules; } - - @Override - public List getModelPackageNames() { - return Collections.singletonList("de.hft.stuttgart.quality.model"); - } - - @Override - public ADEMarshaller createADEMarshaller() { - return new QualityAdeMarshaller(); - } - + @Override - public ADEUnmarshaller createADEUnmarshaller() { - return new QualityAdeUnmarshaller(); + public ADEWalker getADEWalker() { + return new QualityADEWalker(); } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java index 9270a25..58d389b 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java @@ -16,66 +16,22 @@ package de.hft.stuttgart.quality; import java.net.URL; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import javax.xml.namespace.QName; - -import org.citygml4j.model.gml.feature.AbstractFeature; -import org.citygml4j.model.module.ade.ADEModule; -import org.citygml4j.model.module.citygml.CityGMLVersion; +import org.citygml4j.core.model.CityGMLVersion; +import org.citygml4j.xml.module.ade.ADEModule; public class QualityADEModule extends ADEModule { - public static final String NAMESPACE_URI = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3"; - - public static final QualityADEModule V0_1_3 = new QualityADEModule(); - - private static final long serialVersionUID = -8208579547274734280L; - - public QualityADEModule() { - super(NAMESPACE_URI, "qual", CityGMLVersion.v2_0_0); - } - - @Override - public URL getSchemaResource() { - return QualityADEContext.class.getResource("/qualityAde.xsd"); - } - - @Override - public List getJAXBPackageNames() { - return Collections.singletonList("de.hft.stuttgart.quality.model.jaxb"); - } + public static final String NAMESPACE_URI = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.4"; - @Override - public boolean hasFeatureProperty(String name) { - return false; - } + public static final QualityADEModule V0_1_4 = new QualityADEModule(); - @Override - public boolean hasFeature(String name) { - return false; - } - - @Override - public Class getFeatureClass(String name) { - throw new IllegalStateException("No feature classes available"); - } - - @Override - public QName getFeatureName(Class featureClass) { - return null; - } - - @Override - public Map> getFeatures() { - return Collections.emptyMap(); - } - - @Override - public boolean isTopLevelFeature(String name) { - return false; - } + public QualityADEModule() { + super(NAMESPACE_URI, "qual", CityGMLVersion.v2_0); + } + @Override + public URL getSchemaResource() { + return QualityADEContext.class.getResource("/qualityAde.xsd"); + } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEWalker.java similarity index 72% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationError.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEWalker.java index a1b5a8e..6c035a3 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEWalker.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,9 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality; -public abstract class ValidationError extends ChildObject { +import org.citygml4j.core.visitor.ADEWalker; + +public class QualityADEWalker extends ADEWalker { + - private static final long serialVersionUID = -2995694676938108325L; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeMarshaller.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeMarshaller.java deleted file mode 100644 index cd0528a..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeMarshaller.java +++ /dev/null @@ -1,412 +0,0 @@ -/*- - * Copyright 2020 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.marshaller; - -import java.util.List; -import java.util.concurrent.locks.ReentrantLock; - -import javax.xml.bind.JAXBElement; - -import org.citygml4j.builder.jaxb.marshal.citygml.ade.ADEMarshallerHelper; -import org.citygml4j.model.citygml.ade.binding.ADEMarshaller; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.util.mapper.TypeMapper; - -import de.hft.stuttgart.quality.model.AllPolygonsWrongOrientation; -import de.hft.stuttgart.quality.model.AttributeMissing; -import de.hft.stuttgart.quality.model.AttributeWrongValue; -import de.hft.stuttgart.quality.model.ConsecutivePointsSame; -import de.hft.stuttgart.quality.model.Edge; -import de.hft.stuttgart.quality.model.HoleOutside; -import de.hft.stuttgart.quality.model.InnerRingsNested; -import de.hft.stuttgart.quality.model.InteriorDisconnected; -import de.hft.stuttgart.quality.model.IntersectingRings; -import de.hft.stuttgart.quality.model.MultipleConnectedComponents; -import de.hft.stuttgart.quality.model.NonManifoldEdge; -import de.hft.stuttgart.quality.model.NonManifoldVertex; -import de.hft.stuttgart.quality.model.NonPlanarDistancePlane; -import de.hft.stuttgart.quality.model.NonPlanarNormalsDeviation; -import de.hft.stuttgart.quality.model.OrientationRingsSame; -import de.hft.stuttgart.quality.model.PolygonWrongOrientation; -import de.hft.stuttgart.quality.model.RingNotClosed; -import de.hft.stuttgart.quality.model.RingSelfIntersection; -import de.hft.stuttgart.quality.model.SolidNotClosed; -import de.hft.stuttgart.quality.model.SolidSelfIntersection; -import de.hft.stuttgart.quality.model.TooFewPoints; -import de.hft.stuttgart.quality.model.TooFewPolygons; -import de.hft.stuttgart.quality.model.Validation; -import de.hft.stuttgart.quality.model.ValidationError; -import de.hft.stuttgart.quality.model.ValidationResult; -import de.hft.stuttgart.quality.model.jaxb.AllPolygonsWrongOrientationType; -import de.hft.stuttgart.quality.model.jaxb.AttributeMissingType; -import de.hft.stuttgart.quality.model.jaxb.AttributeWrongValueType; -import de.hft.stuttgart.quality.model.jaxb.ConsecutivePointsSameType; -import de.hft.stuttgart.quality.model.jaxb.EdgeType; -import de.hft.stuttgart.quality.model.jaxb.HoleOutsideType; -import de.hft.stuttgart.quality.model.jaxb.InnerRingsNestedType; -import de.hft.stuttgart.quality.model.jaxb.InteriorDisconnectedType; -import de.hft.stuttgart.quality.model.jaxb.IntersectingRingsType; -import de.hft.stuttgart.quality.model.jaxb.MultipleConnectedComponentsType; -import de.hft.stuttgart.quality.model.jaxb.NonManifoldEdgeType; -import de.hft.stuttgart.quality.model.jaxb.NonManifoldVertexType; -import de.hft.stuttgart.quality.model.jaxb.NonPlanarDistancePlaneType; -import de.hft.stuttgart.quality.model.jaxb.NonPlanarNormalsDeviationType; -import de.hft.stuttgart.quality.model.jaxb.ObjectFactory; -import de.hft.stuttgart.quality.model.jaxb.OrientationRingsSameType; -import de.hft.stuttgart.quality.model.jaxb.PolygonWrongOrientationType; -import de.hft.stuttgart.quality.model.jaxb.RingNotClosedType; -import de.hft.stuttgart.quality.model.jaxb.RingSelfIntersectionType; -import de.hft.stuttgart.quality.model.jaxb.SolidNotClosedType; -import de.hft.stuttgart.quality.model.jaxb.SolidSelfIntersectionType; -import de.hft.stuttgart.quality.model.jaxb.TooFewPointsType; -import de.hft.stuttgart.quality.model.jaxb.TooFewPolygonsType; -import de.hft.stuttgart.quality.model.jaxb.ValidationErrorType; -import de.hft.stuttgart.quality.model.jaxb.ValidationResultType; -import de.hft.stuttgart.quality.model.jaxb.ValidationType; - -public class QualityAdeMarshaller implements ADEMarshaller { - - private final ReentrantLock lock = new ReentrantLock(); - private final ObjectFactory factory = new ObjectFactory(); - private TypeMapper> elementMapper; - private TypeMapper typeMapper; - private ADEMarshallerHelper helper; - - private TypeMapper> getElementMapper() { - if (elementMapper == null) { - lock.lock(); - try { - if (elementMapper == null) { - elementMapper = TypeMapper.>create().with(Validation.class, this::createValidation) - .with(ValidationResult.class, this::createValidationResult); - } - } finally { - lock.unlock(); - } - } - - return elementMapper; - } - - private TypeMapper getTypeMapper() { - if (typeMapper == null) { - lock.lock(); - try { - if (typeMapper == null) { - typeMapper = TypeMapper.create().with(Validation.class, this::marshalValidation) - .with(ValidationResult.class, this::marshalValidationResult) - .with(ConsecutivePointsSame.class, this::marshalConsecutivePointsSame) - .with(TooFewPoints.class, this::marshalTooFewPoints) - .with(RingSelfIntersection.class, this::marshalRingSelfIntersection) - .with(RingNotClosed.class, this::marshalRingNotClosed) - .with(InteriorDisconnected.class, this::marshalInteriorDisconnected) - .with(IntersectingRings.class, this::marshalIntersectingRings) - .with(NonPlanarDistancePlane.class, this::marshalNonPlanarDistancePlane) - .with(InnerRingsNested.class, this::marshalInnerRingsNested) - .with(HoleOutside.class, this::marshalHoleOutside) - .with(NonPlanarNormalsDeviation.class, this::marshalNonPlanarNormalsDeviation) - .with(OrientationRingsSame.class, this::marshalOrientationRingsSame) - .with(AllPolygonsWrongOrientation.class, this::marshalAllPolygonsWrongOrientation) - .with(PolygonWrongOrientation.class, this::marshalPolygonWrongOrientation) - .with(SolidSelfIntersection.class, this::marshalSolidSelfIntersection) - .with(NonManifoldVertex.class, this::marshalNonManifoldVertex) - .with(NonManifoldEdge.class, this::marshalNonManifoldEdge) - .with(SolidNotClosed.class, this::marshalSolidNotClosed) - .with(TooFewPolygons.class, this::marshalTooFewPolygons) - .with(MultipleConnectedComponents.class, this::marshalMultipleConnectedComponents) - .with(AttributeWrongValue.class, this::marshalAttributeWrongValue) - .with(AttributeMissing.class, this::marshalAttributeMissing); - } - } finally { - lock.unlock(); - } - } - - return typeMapper; - } - - private ValidationType marshalValidation(Validation src) { - ValidationType dest = new ValidationType(); - - if (src.isSetDateTime()) { - dest.setValidationDate(src.getValidationDate()); - } - - if (src.isSetValidationSoftware()) { - dest.setValidationSoftware(src.getValidationSoftware()); - } - - if (src.isSetValidationPlan()) { - dest.setValidationPlan(src.getValidationPlan()); - } - - if (src.isSetStatistics()) { - dest.setStatistics(src.getStatistics()); - } - - return dest; - } - - private ValidationResultType marshalValidationResult(ValidationResult src) { - ValidationResultType dest = factory.createValidationResultType(); - - dest.setResult(src.getResult()); - - if (src.hasErrors()) { - for (ValidationError err : src.getErrors()) { - dest.getErrors().add(marshalValidationError(err)); - // sort lexicographic, order does not actually matter but xml is restrictive - // that way - // could be solved with xsd v1.1 but jaxb can only process v1.0 - dest.getErrors().sort((e1, e2) -> e1.getName().compareTo(e2.getName())); - } - } - return dest; - } - - private JAXBElement createValidation(Validation src) { - return factory.createValidationType(marshalValidation(src)); - } - - private JAXBElement createValidationResult(ValidationResult src) { - return factory.createValidationResultType(marshalValidationResult(src)); - } - - private ValidationErrorType marshalValidationError(ValidationError err) { - return (ValidationErrorType) marshal(err); - } - - @Override - public void setADEMarshallerHelper(ADEMarshallerHelper helper) { - this.helper = helper; - } - - @Override - public JAXBElement marshalJAXBElement(ADEModelObject src) { - return getElementMapper().apply(src); - } - - @Override - public Object marshal(ADEModelObject src) { - return getTypeMapper().apply(src); - } - - private ConsecutivePointsSameType marshalConsecutivePointsSame(ConsecutivePointsSame src) { - ConsecutivePointsSameType dest = factory.createConsecutivePointsSameType(); - dest.setLinearRingId(src.getLinearRingId()); - if (src.getVertex1() != null) { - dest.setVertex1(helper.getGMLMarshaller().marshalDirectPosition(src.getVertex1())); - } - if (src.getVertex2() != null) { - dest.setVertex2(helper.getGMLMarshaller().marshalDirectPosition(src.getVertex2())); - } - return dest; - } - - private TooFewPointsType marshalTooFewPoints(TooFewPoints src) { - TooFewPointsType dest = factory.createTooFewPointsType(); - dest.setLinearRingId(src.getLinearRingId()); - return dest; - } - - private RingSelfIntersectionType marshalRingSelfIntersection(RingSelfIntersection src) { - RingSelfIntersectionType dest = factory.createRingSelfIntersectionType(); - dest.setLinearRingId(src.getLinearRingId()); - dest.setType(src.getType()); - if (src.getEdge1() != null) { - dest.setEdge1(marshalEdge(src.getEdge1())); - } - - if (src.getEdge2() != null) { - dest.setEdge2(marshalEdge(src.getEdge2())); - } - - if (src.getVertex1() != null) { - dest.setVertex1(helper.getGMLMarshaller().marshalDirectPosition(src.getVertex1())); - } - - if (src.getVertex2() != null) { - dest.setVertex2(helper.getGMLMarshaller().marshalDirectPosition(src.getVertex2())); - } - return dest; - } - - private EdgeType marshalEdge(Edge src) { - EdgeType dest = new EdgeType(); - if (src.getFrom() != null) { - dest.setFrom(helper.getGMLMarshaller().marshalDirectPosition(src.getFrom())); - } - - if (src.getTo() != null) { - dest.setTo(helper.getGMLMarshaller().marshalDirectPosition(src.getTo())); - } - return dest; - } - - private RingNotClosedType marshalRingNotClosed(RingNotClosed src) { - RingNotClosedType dest = new RingNotClosedType(); - dest.setLinearRingId(src.getLinearRingId()); - return dest; - } - - private InteriorDisconnectedType marshalInteriorDisconnected(InteriorDisconnected src) { - InteriorDisconnectedType dest = new InteriorDisconnectedType(); - dest.setPolygonId(src.getPolygonId()); - return dest; - } - - private IntersectingRingsType marshalIntersectingRings(IntersectingRings src) { - IntersectingRingsType dest = new IntersectingRingsType(); - dest.setPolygonId(src.getPolygonId()); - dest.setLinearRingId1(src.getLinearRingId1()); - dest.setLinearRingId2(src.getLinearRingId2()); - return dest; - } - - private NonPlanarDistancePlaneType marshalNonPlanarDistancePlane(NonPlanarDistancePlane src) { - NonPlanarDistancePlaneType dest = new NonPlanarDistancePlaneType(); - dest.setPolygonId(src.getPolygonId()); - if (src.getVertex() != null) { - dest.setVertex(helper.getGMLMarshaller().marshalDirectPosition(src.getVertex())); - } - if (src.getDistance() != null) { - dest.setDistance(helper.getGMLMarshaller().marshalLength(src.getDistance())); - } - return dest; - } - - private InnerRingsNestedType marshalInnerRingsNested(InnerRingsNested src) { - InnerRingsNestedType dest = new InnerRingsNestedType(); - dest.setPolygonId(src.getPolygonId()); - dest.setLinearRingId1(src.getLinearRingId1()); - dest.setLinearRingId2(src.getLinearRingId2()); - return dest; - } - - private HoleOutsideType marshalHoleOutside(HoleOutside src) { - HoleOutsideType dest = new HoleOutsideType(); - dest.setPolygonId(src.getPolygonId()); - dest.setLinearRingId(src.getLinearRingId()); - return dest; - } - - private NonPlanarNormalsDeviationType marshalNonPlanarNormalsDeviation(NonPlanarNormalsDeviation src) { - NonPlanarNormalsDeviationType dest = new NonPlanarNormalsDeviationType(); - dest.setPolygonId(src.getPolygonId()); - if (src.getDeviation() != null) { - dest.setDeviation(helper.getGMLMarshaller().marshalAngle(src.getDeviation())); - } - return dest; - } - - private OrientationRingsSameType marshalOrientationRingsSame(OrientationRingsSame src) { - OrientationRingsSameType dest = new OrientationRingsSameType(); - dest.setPolygonId(src.getPolygonId()); - dest.setLinearRingId(src.getLinearRingId()); - return dest; - } - - private AllPolygonsWrongOrientationType marshalAllPolygonsWrongOrientation(AllPolygonsWrongOrientation src) { - AllPolygonsWrongOrientationType dest = new AllPolygonsWrongOrientationType(); - dest.setGeometryId(src.getGeometryId()); - return dest; - } - - private PolygonWrongOrientationType marshalPolygonWrongOrientation(PolygonWrongOrientation src) { - PolygonWrongOrientationType dest = new PolygonWrongOrientationType(); - dest.setGeometryId(src.getGeometryId()); - if (src.isSetEdges()) { - List edges = dest.getEdges(); - for (Edge e : src.getEdges()) { - edges.add(marshalEdge(e)); - } - } - return dest; - } - - private SolidSelfIntersectionType marshalSolidSelfIntersection(SolidSelfIntersection src) { - SolidSelfIntersectionType dest = new SolidSelfIntersectionType(); - dest.setGeometryId(src.getGeometryId()); - dest.setPolygonId1(src.getPolygonId1()); - dest.setPolygonId2(src.getPolygonId2()); - return dest; - } - - private NonManifoldVertexType marshalNonManifoldVertex(NonManifoldVertex src) { - NonManifoldVertexType dest = new NonManifoldVertexType(); - dest.setGeometryId(src.getGeometryId()); - if (src.getVertex() != null) { - dest.setVertex(helper.getGMLMarshaller().marshalDirectPosition(src.getVertex())); - } - return dest; - } - - private NonManifoldEdgeType marshalNonManifoldEdge(NonManifoldEdge src) { - NonManifoldEdgeType dest = new NonManifoldEdgeType(); - dest.setGeometryId(src.getGeometryId()); - if (src.isSetEdges()) { - List edges = dest.getEdges(); - for (Edge e : src.getEdges()) { - edges.add(marshalEdge(e)); - } - } - return dest; - } - - private SolidNotClosedType marshalSolidNotClosed(SolidNotClosed src) { - SolidNotClosedType dest = new SolidNotClosedType(); - dest.setGeometryId(src.getGeometryId()); - if (src.isSetEdges()) { - List edges = dest.getEdges(); - for (Edge e : src.getEdges()) { - edges.add(marshalEdge(e)); - } - } - return dest; - } - - private TooFewPolygonsType marshalTooFewPolygons(TooFewPolygons src) { - TooFewPolygonsType dest = new TooFewPolygonsType(); - dest.setGeometryId(src.getGeometryId()); - return dest; - } - - private MultipleConnectedComponentsType marshalMultipleConnectedComponents(MultipleConnectedComponents src) { - MultipleConnectedComponentsType dest = new MultipleConnectedComponentsType(); - dest.setGeometryId(src.getGeometryId()); - if (src.isSetComponents()) { - dest.getComponents().addAll(src.getComponents()); - } - return dest; - } - - private AttributeWrongValueType marshalAttributeWrongValue(AttributeWrongValue src) { - AttributeWrongValueType dest = new AttributeWrongValueType(); - dest.setAttributeName(src.getAttributeName()); - dest.setChildId(src.getChildId()); - dest.setGeneric(src.isGeneric()); - return dest; - } - - private AttributeMissingType marshalAttributeMissing(AttributeMissing src) { - AttributeMissingType dest = new AttributeMissingType(); - dest.setAttributeName(src.getAttributeName()); - dest.setChildId(src.getChildId()); - dest.setGeneric(src.isGeneric()); - return dest; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeUnmarshaller.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeUnmarshaller.java deleted file mode 100644 index 21f4148..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeUnmarshaller.java +++ /dev/null @@ -1,374 +0,0 @@ -/*- - * Copyright 2020 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.marshaller; - -import java.util.List; -import java.util.concurrent.locks.ReentrantLock; -import java.util.stream.Collectors; - -import javax.xml.bind.JAXBElement; - -import org.citygml4j.builder.jaxb.unmarshal.citygml.ade.ADEUnmarshallerHelper; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.citygml.ade.binding.ADEUnmarshaller; -import org.citygml4j.util.mapper.CheckedTypeMapper; -import org.citygml4j.xml.io.reader.MissingADESchemaException; - -import de.hft.stuttgart.quality.model.AllPolygonsWrongOrientation; -import de.hft.stuttgart.quality.model.AttributeMissing; -import de.hft.stuttgart.quality.model.AttributeWrongValue; -import de.hft.stuttgart.quality.model.ConsecutivePointsSame; -import de.hft.stuttgart.quality.model.Edge; -import de.hft.stuttgart.quality.model.HoleOutside; -import de.hft.stuttgart.quality.model.InnerRingsNested; -import de.hft.stuttgart.quality.model.InteriorDisconnected; -import de.hft.stuttgart.quality.model.IntersectingRings; -import de.hft.stuttgart.quality.model.MultipleConnectedComponents; -import de.hft.stuttgart.quality.model.NonManifoldEdge; -import de.hft.stuttgart.quality.model.NonManifoldVertex; -import de.hft.stuttgart.quality.model.NonPlanarDistancePlane; -import de.hft.stuttgart.quality.model.NonPlanarNormalsDeviation; -import de.hft.stuttgart.quality.model.OrientationRingsSame; -import de.hft.stuttgart.quality.model.PolygonWrongOrientation; -import de.hft.stuttgart.quality.model.RingNotClosed; -import de.hft.stuttgart.quality.model.RingSelfIntersection; -import de.hft.stuttgart.quality.model.SolidNotClosed; -import de.hft.stuttgart.quality.model.SolidSelfIntersection; -import de.hft.stuttgart.quality.model.TooFewPoints; -import de.hft.stuttgart.quality.model.TooFewPolygons; -import de.hft.stuttgart.quality.model.Validation; -import de.hft.stuttgart.quality.model.ValidationError; -import de.hft.stuttgart.quality.model.ValidationResult; -import de.hft.stuttgart.quality.model.jaxb.AllPolygonsWrongOrientationType; -import de.hft.stuttgart.quality.model.jaxb.AttributeMissingType; -import de.hft.stuttgart.quality.model.jaxb.AttributeWrongValueType; -import de.hft.stuttgart.quality.model.jaxb.ConsecutivePointsSameType; -import de.hft.stuttgart.quality.model.jaxb.EdgeType; -import de.hft.stuttgart.quality.model.jaxb.HoleOutsideType; -import de.hft.stuttgart.quality.model.jaxb.InnerRingsNestedType; -import de.hft.stuttgart.quality.model.jaxb.InteriorDisconnectedType; -import de.hft.stuttgart.quality.model.jaxb.IntersectingRingsType; -import de.hft.stuttgart.quality.model.jaxb.MultipleConnectedComponentsType; -import de.hft.stuttgart.quality.model.jaxb.NonManifoldEdgeType; -import de.hft.stuttgart.quality.model.jaxb.NonManifoldVertexType; -import de.hft.stuttgart.quality.model.jaxb.NonPlanarDistancePlaneType; -import de.hft.stuttgart.quality.model.jaxb.NonPlanarNormalsDeviationType; -import de.hft.stuttgart.quality.model.jaxb.OrientationRingsSameType; -import de.hft.stuttgart.quality.model.jaxb.PolygonWrongOrientationType; -import de.hft.stuttgart.quality.model.jaxb.RingNotClosedType; -import de.hft.stuttgart.quality.model.jaxb.RingSelfIntersectionType; -import de.hft.stuttgart.quality.model.jaxb.SolidNotClosedType; -import de.hft.stuttgart.quality.model.jaxb.SolidSelfIntersectionType; -import de.hft.stuttgart.quality.model.jaxb.TooFewPointsType; -import de.hft.stuttgart.quality.model.jaxb.TooFewPolygonsType; -import de.hft.stuttgart.quality.model.jaxb.ValidationErrorType; -import de.hft.stuttgart.quality.model.jaxb.ValidationResultType; -import de.hft.stuttgart.quality.model.jaxb.ValidationType; -import de.hft.stuttgart.quality.util.UncheckedMissingADESchemaException; - -public class QualityAdeUnmarshaller implements ADEUnmarshaller { - - private final ReentrantLock lock = new ReentrantLock(); - private CheckedTypeMapper typeMapper; - private ADEUnmarshallerHelper helper; - - private CheckedTypeMapper getTypeMapper() { - if (typeMapper == null) { - lock.lock(); - try { - if (typeMapper == null) { - typeMapper = CheckedTypeMapper.create() - .with(ValidationType.class, this::unmarshalValidationType) - .with(ValidationResultType.class, this::umarshalValidationResultType) - .with(ConsecutivePointsSameType.class, this::unmarshalConsecutivePointsSameType) - .with(TooFewPointsType.class, this::unmarshalTooFewPointsType) - .with(RingSelfIntersectionType.class, this::unmarshalRingSelfIntersectionType) - .with(RingNotClosedType.class, this::unmarshalRingNotClosedType) - .with(InteriorDisconnectedType.class, this::unmarshalInteriorDisconnectedType) - .with(IntersectingRingsType.class, this::unmarshalIntersectingRingsType) - .with(NonPlanarDistancePlaneType.class, this::unmarshalNonPlanarDistancePlaneType) - .with(InnerRingsNestedType.class, this::unmarshalInnerRingsType) - .with(HoleOutsideType.class, this::unmarshalHoleOutsideType) - .with(OrientationRingsSameType.class, this::unmarshalOrientationRingsSameType) - .with(NonPlanarNormalsDeviationType.class, this::unmarshalNonPlanarNormalsDeviationType) - .with(AllPolygonsWrongOrientationType.class, this::unmarshalAllPolygonsWrongOrientationType) - .with(PolygonWrongOrientationType.class, this::unmarshalPolygonWrongOrientationType) - .with(SolidSelfIntersectionType.class, this::unmarshalSolidSelfIntersectionType) - .with(NonManifoldVertexType.class, this::unmarshalNonManifoldVertexType) - .with(NonManifoldEdgeType.class, this::unmarshalNonManifoldEdgeType) - .with(SolidNotClosedType.class, this::unmarshalSolidNotClosedType) - .with(TooFewPolygonsType.class, this::unmarshalTooFewPolygonsType) - .with(MultipleConnectedComponentsType.class, this::unmarshalMultipleConnectedComponentsType) - .with(AttributeWrongValueType.class, this::unmarshalAttributeWrongValueType) - .with(AttributeMissingType.class, this::unmarshalAttributeMissingType); - - } - } finally { - lock.unlock(); - } - } - - return typeMapper; - } - - @Override - public void setADEUnmarshallerHelper(ADEUnmarshallerHelper helper) { - this.helper = helper; - } - - @Override - public ADEModelObject unmarshal(JAXBElement src) throws MissingADESchemaException { - return unmarshal(src.getValue()); - } - - @Override - public ADEModelObject unmarshal(Object src) throws MissingADESchemaException { - return getTypeMapper().apply(src); - } - - private Validation unmarshalValidationType(ValidationType src) { - Validation dest = new Validation(); - dest.setValidationDate(src.getValidationDate()); - dest.setValidationSoftware(src.getValidationSoftware()); - dest.setValidationPlan(src.getValidationPlan()); - dest.setStatistics(src.getStatistics()); - return dest; - } - - private ValidationResult umarshalValidationResultType(ValidationResultType src) throws MissingADESchemaException { - ValidationResult dest = new ValidationResult(); - dest.setResult(src.getResult()); - if (src.isSetErrors()) { - try { - dest.getErrors() - .addAll(src.getErrors().stream().map(this::unmarshalError).collect(Collectors.toList())); - } catch (UncheckedMissingADESchemaException e) { - throw e.getCause(); - } - } - return dest; - } - - private ValidationError unmarshalError(ValidationErrorType err) { - try { - return (ValidationError) getTypeMapper().apply(err); - } catch (MissingADESchemaException e) { - throw new UncheckedMissingADESchemaException(e); - } - } - - private ConsecutivePointsSame unmarshalConsecutivePointsSameType(ConsecutivePointsSameType src) { - ConsecutivePointsSame dest = new ConsecutivePointsSame(); - dest.setLinearRingId(src.getLinearRingId()); - dest.setVertex1(helper.getGMLUnmarshaller().unmarshalDirectPosition(src.getVertex1())); - dest.setVertex2(helper.getGMLUnmarshaller().unmarshalDirectPosition(src.getVertex2())); - return dest; - } - - private TooFewPoints unmarshalTooFewPointsType(TooFewPointsType src) { - TooFewPoints dest = new TooFewPoints(); - dest.setLinearRingId(src.getLinearRingId()); - return dest; - } - - private RingSelfIntersection unmarshalRingSelfIntersectionType(RingSelfIntersectionType src) { - RingSelfIntersection dest = new RingSelfIntersection(); - if (src.getEdge1() != null) { - dest.setEdge1(unmarshalEdge(src.getEdge1())); - } - - if (src.getEdge2() != null) { - dest.setEdge2(unmarshalEdge(src.getEdge2())); - } - - dest.setLinearRingId(src.getLinearRingId()); - dest.setType(src.getType()); - - if (src.getVertex1() != null) { - dest.setVertex1(helper.getGMLUnmarshaller().unmarshalDirectPosition(src.getVertex1())); - } - - if (src.getVertex2() != null) { - dest.setVertex2(helper.getGMLUnmarshaller().unmarshalDirectPosition(src.getVertex2())); - } - return dest; - } - - private RingNotClosed unmarshalRingNotClosedType(RingNotClosedType src) { - RingNotClosed dest = new RingNotClosed(); - dest.setLinearRingId(src.getLinearRingId()); - return dest; - } - - private Edge unmarshalEdge(EdgeType src) { - Edge dest = new Edge(); - if (src.getFrom() != null) { - dest.setFrom(helper.getGMLUnmarshaller().unmarshalDirectPosition(src.getFrom())); - } - if (src.getTo() != null) { - dest.setTo(helper.getGMLUnmarshaller().unmarshalDirectPosition(src.getTo())); - } - return dest; - } - - private InteriorDisconnected unmarshalInteriorDisconnectedType(InteriorDisconnectedType src) { - InteriorDisconnected dest = new InteriorDisconnected(); - dest.setPolygonId(src.getPolygonId()); - return dest; - } - - private IntersectingRings unmarshalIntersectingRingsType(IntersectingRingsType src) { - IntersectingRings dest = new IntersectingRings(); - dest.setPolygonId(src.getPolygonId()); - dest.setLinearRingId1(src.getLinearRingId1()); - dest.setLinearRingId2(src.getLinearRingId2()); - return dest; - } - - private InnerRingsNested unmarshalInnerRingsType(InnerRingsNestedType src) { - InnerRingsNested dest = new InnerRingsNested(); - dest.setPolygonId(src.getPolygonId()); - dest.setLinearRingId1(src.getLinearRingId1()); - dest.setLinearRingId2(src.getLinearRingId2()); - return dest; - } - - private NonPlanarDistancePlane unmarshalNonPlanarDistancePlaneType(NonPlanarDistancePlaneType src) { - NonPlanarDistancePlane dest = new NonPlanarDistancePlane(); - dest.setPolygonId(src.getPolygonId()); - if (src.getVertex() != null) { - dest.setVertex(helper.getGMLUnmarshaller().unmarshalDirectPosition(src.getVertex())); - } - if (src.getDistance() != null) { - dest.setDistance(helper.getGMLUnmarshaller().unmarshalLength(src.getDistance())); - } - return dest; - } - - private HoleOutside unmarshalHoleOutsideType(HoleOutsideType src) { - HoleOutside dest = new HoleOutside(); - dest.setPolygonId(src.getPolygonId()); - dest.setLinearRingId(src.getLinearRingId()); - return dest; - } - - private NonPlanarNormalsDeviation unmarshalNonPlanarNormalsDeviationType(NonPlanarNormalsDeviationType src) { - NonPlanarNormalsDeviation dest = new NonPlanarNormalsDeviation(); - dest.setPolygonId(src.getPolygonId()); - if (src.getDeviation() != null) { - dest.setDeviation(helper.getGMLUnmarshaller().unmarshalAngle(src.getDeviation())); - } - return dest; - } - - private OrientationRingsSame unmarshalOrientationRingsSameType(OrientationRingsSameType src) { - OrientationRingsSame dest = new OrientationRingsSame(); - dest.setPolygonId(src.getPolygonId()); - dest.setLinearRingId(src.getLinearRingId()); - return dest; - } - - private AllPolygonsWrongOrientation unmarshalAllPolygonsWrongOrientationType(AllPolygonsWrongOrientationType src) { - AllPolygonsWrongOrientation dest = new AllPolygonsWrongOrientation(); - dest.setGeometryId(src.getGeometryId()); - return dest; - } - - private PolygonWrongOrientation unmarshalPolygonWrongOrientationType(PolygonWrongOrientationType src) { - PolygonWrongOrientation dest = new PolygonWrongOrientation(); - dest.setGeometryId(src.getGeometryId()); - if (src.isSetEdges()) { - List edges = dest.getEdges(); - for (EdgeType e : src.getEdges()) { - edges.add(unmarshalEdge(e)); - } - } - return dest; - } - - private SolidSelfIntersection unmarshalSolidSelfIntersectionType(SolidSelfIntersectionType src) { - SolidSelfIntersection dest = new SolidSelfIntersection(); - dest.setGeometryId(src.getGeometryId()); - dest.setPolygonId1(src.getPolygonId1()); - dest.setPolygonId2(src.getPolygonId2()); - return dest; - } - - private NonManifoldVertex unmarshalNonManifoldVertexType(NonManifoldVertexType src) { - NonManifoldVertex dest = new NonManifoldVertex(); - dest.setGeometryId(src.getGeometryId()); - if (src.getVertex() != null) { - dest.setVertex(helper.getGMLUnmarshaller().unmarshalDirectPosition(src.getVertex())); - } - return dest; - } - - private NonManifoldEdge unmarshalNonManifoldEdgeType(NonManifoldEdgeType src) { - NonManifoldEdge dest = new NonManifoldEdge(); - dest.setGeometryId(src.getGeometryId()); - if (src.isSetEdges()) { - List edges = dest.getEdges(); - for (EdgeType e : src.getEdges()) { - edges.add(unmarshalEdge(e)); - } - } - return dest; - } - - private SolidNotClosed unmarshalSolidNotClosedType(SolidNotClosedType src) { - SolidNotClosed dest = new SolidNotClosed(); - dest.setGeometryId(src.getGeometryId()); - if (src.isSetEdges()) { - List edges = dest.getEdges(); - for (EdgeType e : src.getEdges()) { - edges.add(unmarshalEdge(e)); - } - } - return dest; - } - - private TooFewPolygons unmarshalTooFewPolygonsType(TooFewPolygonsType src) { - TooFewPolygons dest = new TooFewPolygons(); - dest.setGeometryId(src.getGeometryId()); - return dest; - } - - private MultipleConnectedComponents unmarshalMultipleConnectedComponentsType(MultipleConnectedComponentsType src) { - MultipleConnectedComponents dest = new MultipleConnectedComponents(); - dest.setGeometryId(src.getGeometryId()); - if (src.isSetComponents()) { - dest.getComponents().addAll(src.getComponents()); - } - return dest; - } - - private AttributeWrongValue unmarshalAttributeWrongValueType(AttributeWrongValueType src) { - AttributeWrongValue dest = new AttributeWrongValue(); - dest.setAttributeName(src.getAttributeName()); - dest.setChildId(src.getChildId()); - dest.setGeneric(src.isGeneric()); - return dest; - } - - private AttributeMissing unmarshalAttributeMissingType(AttributeMissingType src) { - AttributeMissing dest = new AttributeMissing(); - dest.setAttributeName(src.getAttributeName()); - dest.setChildId(src.getChildId()); - dest.setGeneric(src.isGeneric()); - return dest; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/ZonedDateTimeAdapter.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/ZonedDateTimeAdapter.java deleted file mode 100644 index bf9101c..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/ZonedDateTimeAdapter.java +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright 2020 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.marshaller; - -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; - -import javax.xml.bind.annotation.adapters.XmlAdapter; - -public class ZonedDateTimeAdapter extends XmlAdapter { - - @Override - public ZonedDateTime unmarshal(String v) throws Exception { - try { - return ZonedDateTime.from(DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(v)); - } catch (Exception e) { - return LocalDateTime.parse(v).atZone(ZoneId.systemDefault()); - } - } - - @Override - public String marshal(ZonedDateTime v) throws Exception { - return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(v); - } - - - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeMissing.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeMissing.java deleted file mode 100644 index d3eee9b..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeMissing.java +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class AttributeMissing extends SemanticError { - - private static final long serialVersionUID = -5416574100733885169L; - - private String childId; - private String attributeName; - private boolean generic; - - public String getChildId() { - return childId; - } - - public void setChildId(String childId) { - this.childId = childId; - } - - public String getAttributeName() { - return attributeName; - } - - public void setAttributeName(String attributeName) { - this.attributeName = attributeName; - } - - public boolean isGeneric() { - return generic; - } - - public void setGeneric(boolean generic) { - this.generic = generic; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new AttributeWrongValue(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeWrongValue.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeWrongValue.java deleted file mode 100644 index b881559..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeWrongValue.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class AttributeWrongValue extends SemanticError { - - private static final long serialVersionUID = -5650985861847806620L; - - private String childId; - private String attributeName; - private boolean generic; - - public String getChildId() { - return childId; - } - - public void setChildId(String childId) { - this.childId = childId; - } - - public String getAttributeName() { - return attributeName; - } - - public void setAttributeName(String attributeName) { - this.attributeName = attributeName; - } - - public boolean isGeneric() { - return generic; - } - - public void setGeneric(boolean generic) { - this.generic = generic; - } - - @Override - public String toString() { - return "AttributeWrongValue [childId=" + childId + ", attributeName=" + attributeName + ", generic=" + generic - + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new AttributeWrongValue(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ChildObject.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ChildObject.java deleted file mode 100644 index 39aec6d..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ChildObject.java +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.base.ModelObject; - -public abstract class ChildObject implements ADEModelObject { - - private static final long serialVersionUID = 6726372382501963276L; - - private ModelObject parent; - - @Override - public Object copyTo(Object target, CopyBuilder copyBuilder) { - return target; - } - - @Override - public ModelObject getParent() { - return parent; - } - - @Override - public void setParent(ModelObject parent) { - this.parent = parent; - } - - @Override - public boolean isSetParent() { - return parent != null; - } - - @Override - public void unsetParent() { - parent = null; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/HoleOutside.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/HoleOutside.java deleted file mode 100644 index 4804bb0..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/HoleOutside.java +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class HoleOutside extends PolygonError { - - private static final long serialVersionUID = -3029497342950689843L; - - private String linearRingId; - - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - - public String getLinearRingId() { - return linearRingId; - } - - @Override - public String toString() { - return "HoleOutside [polygonId=" + getPolygonId() + ", linearRingId=" + linearRingId + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new HoleOutside(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InteriorDisconnected.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InteriorDisconnected.java deleted file mode 100644 index 64da8cc..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InteriorDisconnected.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class InteriorDisconnected extends PolygonError { - - private static final long serialVersionUID = 8443642232356795359L; - - @Override - public String toString() { - return "InteriorDisconnected [polygonId=" + getPolygonId() + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new InteriorDisconnected(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/IntersectingRings.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/IntersectingRings.java deleted file mode 100644 index cab11d6..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/IntersectingRings.java +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class IntersectingRings extends PolygonError { - - private static final long serialVersionUID = 7668529369582991408L; - - private String linearRingId1; - private String linearRingId2; - - public void setLinearRingId1(String linearRingId1) { - this.linearRingId1 = linearRingId1; - } - - public void setLinearRingId2(String linearRingId2) { - this.linearRingId2 = linearRingId2; - } - - public String getLinearRingId1() { - return linearRingId1; - } - - public String getLinearRingId2() { - return linearRingId2; - } - - @Override - public String toString() { - return "IntersectingRings [polygonId=" + getPolygonId() + ", linearRingId1=" + linearRingId1 + ", linearRingId2=" - + linearRingId2 + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new IntersectingRings(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/MultipleConnectedComponents.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/MultipleConnectedComponents.java deleted file mode 100644 index c69d6a1..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/MultipleConnectedComponents.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * Copyright 2020 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; - -import java.util.ArrayList; -import java.util.List; - -import org.citygml4j.builder.copy.CopyBuilder; - -import de.hft.stuttgart.quality.model.jaxb.Component; - -public class MultipleConnectedComponents extends SolidError { - - private static final long serialVersionUID = -4199420154182053060L; - - private List components; - - public boolean isSetComponents() { - return components != null && !components.isEmpty(); - } - - public List getComponents() { - if (components == null) { - components = new ArrayList<>(); - } - return components; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new MultipleConnectedComponents(), copyBuilder); - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldVertex.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldVertex.java deleted file mode 100644 index b1d9b53..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldVertex.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.gml.geometry.primitives.DirectPosition; - -public class NonManifoldVertex extends SolidError { - - private static final long serialVersionUID = -3434116956866828127L; - - private DirectPosition vertex; - - public void setVertex(DirectPosition vertex) { - this.vertex = vertex; - } - - public DirectPosition getVertex() { - return vertex; - } - - @Override - public String toString() { - return "NonManifoldVertex [geometryId=" + getGeometryId() + ", vertex=" + vertex + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new NonManifoldVertex(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarNormalsDeviation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarNormalsDeviation.java deleted file mode 100644 index faa5a4f..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarNormalsDeviation.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.gml.measures.Angle; - -public class NonPlanarNormalsDeviation extends PolygonError { - - private static final long serialVersionUID = -8574024132334399550L; - - private Angle deviation; - - public void setDeviation(Angle deviation) { - this.deviation = deviation; - } - - public Angle getDeviation() { - return deviation; - } - - @Override - public String toString() { - return "NonPlanarNormalsDeviation [polygonId=" + getPolygonId() + ", deviation=" + deviation + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new NonPlanarNormalsDeviation(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/OrientationRingsSame.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/OrientationRingsSame.java deleted file mode 100644 index 16ab55e..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/OrientationRingsSame.java +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class OrientationRingsSame extends PolygonError { - - private static final long serialVersionUID = -6983324580253488854L; - - private String linearRingId; - - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - - public String getLinearRingId() { - return linearRingId; - } - - @Override - public String toString() { - return "OrientationRingsSame [polygonId=" + getPolygonId() + ", linearRingId=" + linearRingId + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new OrientationRingsSame(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonWrongOrientation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonWrongOrientation.java deleted file mode 100644 index 965491b..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonWrongOrientation.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright 2020 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; - -import java.util.ArrayList; -import java.util.List; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class PolygonWrongOrientation extends SolidError { - - private static final long serialVersionUID = 1128689472694838648L; - - private List edges; - - public boolean isSetEdges() { - return edges != null && !edges.isEmpty(); - } - - public List getEdges() { - if (edges == null) { - edges = new ArrayList<>(); - } - return edges; - } - - @Override - public String toString() { - return "PolygonWrongOrientation [geometryId=" + getGeometryId() + ", edges=" + edges + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new PolygonWrongOrientation(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingNotClosed.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingNotClosed.java deleted file mode 100644 index 4c52b24..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingNotClosed.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class RingNotClosed extends RingError { - - private static final long serialVersionUID = 5502668444088395535L; - - @Override - public String toString() { - return "RingNotClosed [linearRingId=" + getLinearRingId() + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new RingNotClosed(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidSelfIntersection.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidSelfIntersection.java deleted file mode 100644 index 423512c..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidSelfIntersection.java +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * Copyright 2020 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; - -import org.citygml4j.builder.copy.CopyBuilder; - -public class SolidSelfIntersection extends SolidError { - - private static final long serialVersionUID = 4086097021438848040L; - - private String polygonId1; - private String polygonId2; - - public String getPolygonId1() { - return polygonId1; - } - - public void setPolygonId1(String polygonId1) { - this.polygonId1 = polygonId1; - } - - public String getPolygonId2() { - return polygonId2; - } - - public void setPolygonId2(String polygonId2) { - this.polygonId2 = polygonId2; - } - - @Override - public String toString() { - return "SolidSelfIntersection [geometryId=" + getGeometryId() + ", polygonId1=" + polygonId1 + ", polygonId2=" - + polygonId2 + "]"; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new SolidSelfIntersection(), copyBuilder); - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Validation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Validation.java deleted file mode 100644 index 2ee30ba..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Validation.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * Copyright 2020 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; - -import java.time.ZonedDateTime; - -import org.citygml4j.builder.copy.CopyBuilder; - -import de.hft.stuttgart.quality.model.jaxb.Statistics; -import de.hft.stuttgart.quality.model.jaxb.ValidationPlan; - -public class Validation extends ChildObject { - - private static final long serialVersionUID = 1738293574859506005L; - - private ZonedDateTime validationDate; - private String validationSoftware; - private ValidationPlan validationPlan; - private Statistics statistics; - - @Override - public Object copy(CopyBuilder copyBuilder) { - return this; - } - - public boolean isSetStatistics() { - return statistics != null; - } - - public void setStatistics(Statistics statistics) { - this.statistics = statistics; - } - - public Statistics getStatistics() { - return statistics; - } - - public boolean isSetValidationPlan() { - return validationPlan != null; - } - - public void setValidationPlan(ValidationPlan validationPlan) { - this.validationPlan = validationPlan; - } - - public ValidationPlan getValidationPlan() { - return validationPlan; - } - - public boolean isSetDateTime() { - return validationDate != null; - } - - public boolean isSetValidationSoftware() { - return validationSoftware != null; - } - - public void setValidationDate(ZonedDateTime validationDate) { - this.validationDate = validationDate; - } - - public ZonedDateTime getValidationDate() { - return validationDate; - } - - public void setValidationSoftware(String validationSoftware) { - this.validationSoftware = validationSoftware; - } - - public String getValidationSoftware() { - return validationSoftware; - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationResult.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationResult.java deleted file mode 100644 index c547d61..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationResult.java +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * Copyright 2020 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; - -import java.util.ArrayList; -import java.util.List; - -import org.citygml4j.builder.copy.CopyBuilder; - -import de.hft.stuttgart.quality.model.jaxb.ResultType; - -public class ValidationResult extends ChildObject { - - private static final long serialVersionUID = 1180762313908627342L; - - private ResultType result; - - private List errors; - - public boolean hasErrors() { - return errors != null && !errors.isEmpty(); - } - - public List getErrors() { - if (errors == null) { - errors = new ArrayList<>(2); - } - return errors; - } - - public void setResult(ResultType result) { - this.result = result; - } - - public ResultType getResult() { - return result; - } - - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new ValidationResult(), copyBuilder); - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorId.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/ErrorId.java similarity index 88% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorId.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/ErrorId.java index cb34d11..3154031 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorId.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/ErrorId.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.enums; -import javax.xml.bind.annotation.XmlEnum; - -@XmlEnum public enum ErrorId { GE_R_TOO_FEW_POINTS, GE_R_NOT_CLOSED, GE_R_CONSECUTIVE_POINTS_SAME, GE_R_SELF_INTERSECTION, diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RequirementId.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/RequirementId.java similarity index 88% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RequirementId.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/RequirementId.java index 851382c..19a065b 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RequirementId.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/RequirementId.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,11 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.enums; -import javax.xml.bind.annotation.XmlEnum; -@XmlEnum public enum RequirementId { R_GE_R_TOO_FEW_POINTS, R_GE_R_NOT_CLOSED, R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_SELF_INTERSECTION, diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ResultType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/ResultType.java similarity index 80% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ResultType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/ResultType.java index 70db92c..a35c316 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ResultType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/ResultType.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.enums; -import javax.xml.bind.annotation.XmlEnum; - -@XmlEnum public enum ResultType { OK, ERROR, NOT_CHECKED diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/RingSelfIntType.java similarity index 81% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/RingSelfIntType.java index 582bcc0..d6d5b83 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/RingSelfIntType.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.enums; -import javax.xml.bind.annotation.XmlEnum; - -@XmlEnum public enum RingSelfIntType { DUPLICATE_POINT, POINT_TOUCHES_EDGE, EDGE_INTERSECTS_EDGE } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TopLevelFeatureType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/TopLevelFeatureType.java similarity index 81% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TopLevelFeatureType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/TopLevelFeatureType.java index b0fa42f..b046b6e 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TopLevelFeatureType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/TopLevelFeatureType.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,11 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.enums; -import javax.xml.bind.annotation.XmlEnum; - -@XmlEnum public enum TopLevelFeatureType { BUILDING, TRANSPORTATION, VEGETATION, BRIDGE, WATER, LAND diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Checking.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Checking.java deleted file mode 100644 index 75a9e07..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Checking.java +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import java.io.Serializable; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlValue; - -@XmlAccessorType(XmlAccessType.FIELD) -public class Checking implements Serializable { - - private static final long serialVersionUID = 8429726429709450505L; - - @XmlValue - private TopLevelFeatureType value; - - public Checking() { - } - - public Checking(TopLevelFeatureType value) { - this.value = value; - } - - public void setValue(TopLevelFeatureType value) { - this.value = value; - } - - public TopLevelFeatureType getValue() { - return value; - } - - @Override - public String toString() { - return "Checking [value=" + value + "]"; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ConsecutivePointsSameType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ConsecutivePointsSameType.java deleted file mode 100644 index 4a584f0..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ConsecutivePointsSameType.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; - -import net.opengis.gml.DirectPositionType; - -@XmlRootElement(name = "GE_R_CONSECUTIVE_POINTS_SAME") -public class ConsecutivePointsSameType extends RingErrorType { - - private DirectPositionType vertex1; - private DirectPositionType vertex2; - - public void setVertex1(DirectPositionType vertex1) { - this.vertex1 = vertex1; - } - - public void setVertex2(DirectPositionType vertex2) { - this.vertex2 = vertex2; - } - - public DirectPositionType getVertex1() { - return vertex1; - } - - public DirectPositionType getVertex2() { - return vertex2; - } - - @Override - public String toString() { - return "ConsecutivePointsSameType [linearRingId=" + getLinearRingId() + ", vertex1=" + vertex1 + ", vertex2=" + vertex2 - + "]"; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/EdgeType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/EdgeType.java deleted file mode 100644 index 62af6aa..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/EdgeType.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; - -import net.opengis.gml.DirectPositionType; - -@XmlAccessorType(XmlAccessType.FIELD) -public class EdgeType { - - private DirectPositionType from; - private DirectPositionType to; - - public void setFrom(DirectPositionType from) { - this.from = from; - } - - public void setTo(DirectPositionType to) { - this.to = to; - } - - public DirectPositionType getFrom() { - return from; - } - - public DirectPositionType getTo() { - return to; - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InnerRingsNestedType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InnerRingsNestedType.java deleted file mode 100644 index cce7ffe..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InnerRingsNestedType.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement(name = "GE_P_INNER_RINGS_NESTED") -public class InnerRingsNestedType extends PolygonErrorType { - - private String linearRingId1; - private String linearRingId2; - - public void setLinearRingId1(String linearRingId1) { - this.linearRingId1 = linearRingId1; - } - - public void setLinearRingId2(String linearRingId2) { - this.linearRingId2 = linearRingId2; - } - - public String getLinearRingId1() { - return linearRingId1; - } - - public String getLinearRingId2() { - return linearRingId2; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarDistancePlaneType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarDistancePlaneType.java deleted file mode 100644 index 4e3523b..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarDistancePlaneType.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; - -import net.opengis.gml.DirectPositionType; -import net.opengis.gml.LengthType; - -@XmlRootElement(name = "GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE") -public class NonPlanarDistancePlaneType extends PolygonErrorType { - - private DirectPositionType vertex; - private LengthType distance; - - public void setVertex(DirectPositionType vertex) { - this.vertex = vertex; - } - - public void setDistance(LengthType distance) { - this.distance = distance; - } - - public DirectPositionType getVertex() { - return vertex; - } - - public LengthType getDistance() { - return distance; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ObjectFactory.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ObjectFactory.java deleted file mode 100644 index 987b4e4..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ObjectFactory.java +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.namespace.QName; - -import de.hft.stuttgart.quality.QualityADEModule; - -@XmlRegistry -public class ObjectFactory { - - private static final QName VALIDATION_QNAME = new QName(QualityADEModule.NAMESPACE_URI, "validation"); - private static final QName VALIDATION_RESULT_QNAME = new QName(QualityADEModule.NAMESPACE_URI, "validationResult"); - - public ValidationType createValidationType() { - return new ValidationType(); - } - - public ValidationResultType createValidationResultType() { - return new ValidationResultType(); - } - - public ConsecutivePointsSameType createConsecutivePointsSameType() { - return new ConsecutivePointsSameType(); - } - - public TooFewPointsType createTooFewPointsType() { - return new TooFewPointsType(); - } - - @XmlElementDecl(namespace = QualityADEModule.NAMESPACE_URI, name = "validation", substitutionHeadNamespace = "http://www.opengis.net/citygml/2.0", substitutionHeadName = "_GenericApplicationPropertyOfCityModel") - public JAXBElement createValidationType(ValidationType type) { - return new JAXBElement<>(VALIDATION_QNAME, ValidationType.class, type); - } - - @XmlElementDecl(namespace = QualityADEModule.NAMESPACE_URI, name = "validationResult", substitutionHeadNamespace = "http://www.opengis.net/citygml/2.0", substitutionHeadName = "_GenericApplicationPropertyOfCityObject") - public JAXBElement createValidationResultType(ValidationResultType type) { - return new JAXBElement<>(VALIDATION_RESULT_QNAME, ValidationResultType.class, type); - } - - public RingSelfIntersectionType createRingSelfIntersectionType() { - return new RingSelfIntersectionType(); - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonErrorType.java deleted file mode 100644 index aec3160..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonErrorType.java +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSeeAlso; - -@XmlSeeAlso({ InteriorDisconnectedType.class, IntersectingRingsType.class, HoleOutsideType.class, - InnerRingsNestedType.class, NonPlanarDistancePlaneType.class, NonPlanarNormalsDeviationType.class, - OrientationRingsSameType.class }) - -@XmlRootElement(name = "PolygonError") -public class PolygonErrorType extends ValidationErrorType { - - private String polygonId; - - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - - public String getPolygonId() { - return polygonId; - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonWrongOrientationType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonWrongOrientationType.java deleted file mode 100644 index 7cd6358..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonWrongOrientationType.java +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import java.util.ArrayList; -import java.util.List; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement(name = "GE_S_POLYGON_WRONG_ORIENTATION") -public class PolygonWrongOrientationType extends SolidErrorType { - - @XmlElementWrapper - @XmlElement(name = "edge") - private List edges; - - public boolean isSetEdges() { - return edges != null && !edges.isEmpty(); - } - - public List getEdges() { - if (edges == null) { - edges = new ArrayList<>(); - } - return edges; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Requirement.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Requirement.java deleted file mode 100644 index c3a2146..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Requirement.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - -@XmlType(name = "requirement") -@XmlAccessorType(XmlAccessType.FIELD) -public class Requirement implements Serializable { - - private static final long serialVersionUID = 8493047783215253763L; - - @XmlAttribute - private RequirementId name; - - @XmlAttribute - private boolean enabled; - - @XmlElement(name = "parameter") - private List parameters; - - public RequirementId getName() { - return name; - } - - public List getParameters() { - if (parameters == null) { - parameters = new ArrayList<>(2); - } - return parameters; - } - - public boolean isEnabled() { - return enabled; - } - - public void setName(RequirementId name) { - this.name = name; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - @Override - public String toString() { - return "Requirement [name=" + name + ", enabled=" + enabled + ", parameters=" + parameters + "]"; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingErrorType.java deleted file mode 100644 index 90e7034..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingErrorType.java +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSeeAlso; - -@XmlSeeAlso({ ConsecutivePointsSameType.class, RingNotClosedType.class, RingSelfIntersectionType.class, - TooFewPointsType.class }) -@XmlRootElement(name = "RingError") -public class RingErrorType extends ValidationErrorType { - - private String linearRingId; - - public String getLinearRingId() { - return linearRingId; - } - - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntersectionType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntersectionType.java deleted file mode 100644 index 5e01f59..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntersectionType.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; - -import net.opengis.gml.DirectPositionType; - -@XmlRootElement(name = "GE_R_SELF_INTERSECTION") -public class RingSelfIntersectionType extends RingErrorType { - - private RingSelfIntType type; - private EdgeType edge1; - private EdgeType edge2; - private DirectPositionType vertex1; - private DirectPositionType vertex2; - - public void setType(RingSelfIntType type) { - this.type = type; - } - - public void setEdge1(EdgeType edge1) { - this.edge1 = edge1; - } - - public void setEdge2(EdgeType edge2) { - this.edge2 = edge2; - } - - public void setVertex1(DirectPositionType vertex1) { - this.vertex1 = vertex1; - } - - public void setVertex2(DirectPositionType vertex2) { - this.vertex2 = vertex2; - } - - public RingSelfIntType getType() { - return type; - } - - public EdgeType getEdge1() { - return edge1; - } - - public EdgeType getEdge2() { - return edge2; - } - - public DirectPositionType getVertex1() { - return vertex1; - } - - public DirectPositionType getVertex2() { - return vertex2; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SemanticErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SemanticErrorType.java deleted file mode 100644 index da2e5a5..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SemanticErrorType.java +++ /dev/null @@ -1,25 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSeeAlso; - -@XmlSeeAlso({ AttributeWrongValueType.class, AttributeMissingType.class }) -@XmlRootElement(name = "SemanticError") -public class SemanticErrorType extends ValidationErrorType { - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidErrorType.java deleted file mode 100644 index ad57862..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidErrorType.java +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSeeAlso; - -@XmlSeeAlso({ SolidNotClosedType.class, AllPolygonsWrongOrientationType.class, PolygonWrongOrientationType.class, - NonManifoldVertexType.class, NonManifoldEdgeType.class, TooFewPolygonsType.class, - MultipleConnectedComponentsType.class, SolidSelfIntersectionType.class }) -@XmlRootElement(name = "SolidError") -public class SolidErrorType extends ValidationErrorType { - - private String geometryId; - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidNotClosedType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidNotClosedType.java deleted file mode 100644 index b2f64dd..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidNotClosedType.java +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import java.util.ArrayList; -import java.util.List; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement(name = "GE_S_NOT_CLOSED") -public class SolidNotClosedType extends SolidErrorType { - - @XmlElementWrapper - @XmlElement(name = "edge") - private List edges; - - public boolean isSetEdges() { - return edges != null && !edges.isEmpty(); - } - - public List getEdges() { - if (edges == null) { - edges = new ArrayList<>(); - } - return edges; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Statistics.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Statistics.java deleted file mode 100644 index a141b60..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Statistics.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; - -@XmlAccessorType(XmlAccessType.FIELD) -public class Statistics implements Serializable { - - private static final long serialVersionUID = 2250094686994310986L; - - private FeatureStatistics numErrorBuildings; - private FeatureStatistics numErrorVegetation; - private FeatureStatistics numErrorLandObjects; - private FeatureStatistics numErrorBridgeObjects; - private FeatureStatistics numErrorWaterObjects; - private FeatureStatistics numErrorTransportation; - - @XmlElementWrapper(name = "errorStatistics") - @XmlElement(name = "error") - private List errorStatistics; - - public List getErrorStatistics() { - if (errorStatistics == null) { - errorStatistics = new ArrayList<>(); - } - return errorStatistics; - } - - public FeatureStatistics getNumErrorBridgeObjects() { - return numErrorBridgeObjects; - } - - public FeatureStatistics getNumErrorBuildings() { - return numErrorBuildings; - } - - public FeatureStatistics getNumErrorLandObjects() { - return numErrorLandObjects; - } - - public FeatureStatistics getNumErrorTransportation() { - return numErrorTransportation; - } - - public FeatureStatistics getNumErrorVegetation() { - return numErrorVegetation; - } - - public FeatureStatistics getNumErrorWaterObjects() { - return numErrorWaterObjects; - } - - public void setNumErrorBridgeObjects(FeatureStatistics numErrorBridgeObjects) { - this.numErrorBridgeObjects = numErrorBridgeObjects; - } - - public void setNumErrorBuildings(FeatureStatistics numErrorBuildings) { - this.numErrorBuildings = numErrorBuildings; - } - - public void setNumErrorLandObjects(FeatureStatistics numErrorLandObjects) { - this.numErrorLandObjects = numErrorLandObjects; - } - - public void setNumErrorTransportation(FeatureStatistics numErrorTransportation) { - this.numErrorTransportation = numErrorTransportation; - } - - public void setNumErrorVegetation(FeatureStatistics numErrorVegetation) { - this.numErrorVegetation = numErrorVegetation; - } - - public void setNumErrorWaterObjects(FeatureStatistics numErrorWaterObjects) { - this.numErrorWaterObjects = numErrorWaterObjects; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPointsType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPointsType.java deleted file mode 100644 index b790459..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPointsType.java +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement(name = "GE_R_TOO_FEW_POINTS") -public class TooFewPointsType extends RingErrorType { - - @Override - public String toString() { - return "TooFewPoints [linearRingId=" + getLinearRingId() + "]"; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPolygonsType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPolygonsType.java deleted file mode 100644 index 0bac474..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPolygonsType.java +++ /dev/null @@ -1,23 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement(name = "GE_S_TOO_FEW_POLYGONS") -public class TooFewPolygonsType extends SolidErrorType { - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationErrorType.java deleted file mode 100644 index 24ca126..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationErrorType.java +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlTransient; - -@XmlSeeAlso({ RingErrorType.class, PolygonErrorType.class, SolidErrorType.class, SemanticErrorType.class }) -@XmlAccessorType(XmlAccessType.FIELD) -@XmlRootElement(name = "ValidationError") -public abstract class ValidationErrorType { - - @XmlTransient - private String name; - - protected ValidationErrorType() { - name = getClass().getAnnotation(XmlRootElement.class).name(); - } - - public String getName() { - return name; - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationPlan.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationPlan.java deleted file mode 100644 index a947f14..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationPlan.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; -import javax.xml.bind.annotation.XmlType; - -@XmlType(name = "validationPlan") -@XmlAccessorType(XmlAccessType.FIELD) -public class ValidationPlan implements Serializable { - - private static final long serialVersionUID = 199908444294536261L; - - @XmlElementWrapper(name = "globalParameters") - @XmlElement(name = "parameter") - private List globalParameters; - - @XmlElement(name = "requirement") - private List requirements; - - @XmlElementWrapper(name = "filter") - @XmlElement(name = "checking") - private List filter; - - public List getFilter() { - if (filter == null) { - filter = new ArrayList<>(); - } - return filter; - } - - public List getRequirements() { - if (requirements == null) { - requirements = new ArrayList<>(); - } - return requirements; - } - - public List getGlobalParameters() { - if (globalParameters == null) { - globalParameters = new ArrayList<>(); - } - return globalParameters; - } -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationResultType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationResultType.java deleted file mode 100644 index cadc930..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationResultType.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * Copyright 2020 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.jaxb; - -import java.util.ArrayList; -import java.util.List; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElementRef; - -@XmlAccessorType(XmlAccessType.FIELD) -public class ValidationResultType { - - @XmlAttribute(name = "result") - private ResultType result; - - @XmlElementRef - private List errors; - - public List getErrors() { - if (errors == null) { - errors = new ArrayList<>(2); - } - return errors; - } - - public void setResult(ResultType result) { - this.result = result; - } - - public ResultType getResult() { - return result; - } - - public boolean isSetErrors() { - return errors != null && !errors.isEmpty(); - } - -} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/package-info.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/package-info.java deleted file mode 100644 index a5e5288..0000000 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/package-info.java +++ /dev/null @@ -1,18 +0,0 @@ -/*- - * Copyright 2020 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. - */ -@javax.xml.bind.annotation.XmlSchema(namespace = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = { - @javax.xml.bind.annotation.XmlNs(namespaceURI = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3", prefix = "qual") }) -package de.hft.stuttgart.quality.model.jaxb; diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractErrorProperty.java new file mode 100644 index 0000000..154f16d --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.AbstractError; + +public class AbstractErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 1411862623125946009L; + + public AbstractErrorProperty() { + super(); + } + + public AbstractErrorProperty(AbstractError ae) { + super(ae); + } + + @Override + public Class getTargetType() { + return AbstractError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractGeometryErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractGeometryErrorProperty.java new file mode 100644 index 0000000..66789ee --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractGeometryErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.AbstractGeometryError; + +public class AbstractGeometryErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 7034671234592671680L; + + public AbstractGeometryErrorProperty() { + super(); + } + + public AbstractGeometryErrorProperty(AbstractGeometryError age) { + super(age); + } + + @Override + public Class getTargetType() { + return AbstractGeometryError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractPolygonErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractPolygonErrorProperty.java new file mode 100644 index 0000000..90dd4b0 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractPolygonErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.AbstractPolygonError; + +public class AbstractPolygonErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 70692012962059529L; + + public AbstractPolygonErrorProperty() { + super(); + } + + public AbstractPolygonErrorProperty(AbstractPolygonError ape) { + super(ape); + } + + @Override + public Class getTargetType() { + return AbstractPolygonError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractRingErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractRingErrorProperty.java new file mode 100644 index 0000000..bd93ccb --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractRingErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.AbstractRingError; + +public class AbstractRingErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 6934180997181643185L; + + public AbstractRingErrorProperty() { + super(); + } + + public AbstractRingErrorProperty(AbstractRingError are) { + super(are); + } + + @Override + public Class getTargetType() { + return AbstractRingError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractSemanticErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractSemanticErrorProperty.java new file mode 100644 index 0000000..1cb46ca --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractSemanticErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.AbstractSemanticError; + +public class AbstractSemanticErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 8488922114751949334L; + + public AbstractSemanticErrorProperty() { + super(); + } + + public AbstractSemanticErrorProperty(AbstractSemanticError ase) { + super(ase); + } + + @Override + public Class getTargetType() { + return AbstractSemanticError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractSolidErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractSolidErrorProperty.java new file mode 100644 index 0000000..bdee7d6 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AbstractSolidErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.AbstractSolidError; + +public class AbstractSolidErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 4191279461525842687L; + + public AbstractSolidErrorProperty() { + super(); + } + + public AbstractSolidErrorProperty(AbstractSolidError ase) { + super(ase); + } + + @Override + public Class getTargetType() { + return AbstractSolidError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AllPolygonsOrientedWrongErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AllPolygonsOrientedWrongErrorProperty.java new file mode 100644 index 0000000..19a004d --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/AllPolygonsOrientedWrongErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.AllPolygonsOrientedWrongError; + +public class AllPolygonsOrientedWrongErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 441706560214349475L; + + public AllPolygonsOrientedWrongErrorProperty() { + super(); + } + + public AllPolygonsOrientedWrongErrorProperty(AllPolygonsOrientedWrongError apowe) { + super(apowe); + } + + @Override + public Class getTargetType() { + return AllPolygonsOrientedWrongError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/CheckingProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/CheckingProperty.java new file mode 100644 index 0000000..c6c4f10 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/CheckingProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.Checking; + +public class CheckingProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 2275964563754871682L; + + public CheckingProperty() { + super(); + } + + public CheckingProperty(Checking c) { + super(c); + } + + @Override + public Class getTargetType() { + return Checking.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ComponentListProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ComponentListProperty.java new file mode 100644 index 0000000..be09b6c --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ComponentListProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.ComponentList; + +public class ComponentListProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3081945215746143126L; + + public ComponentListProperty() { + super(); + } + + public ComponentListProperty(ComponentList cl) { + super(cl); + } + + @Override + public Class getTargetType() { + return ComponentList.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ConsecutivePointsSameErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ConsecutivePointsSameErrorProperty.java new file mode 100644 index 0000000..38a1bc4 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ConsecutivePointsSameErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.ConsecutivePointsSameError; + +public class ConsecutivePointsSameErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3869036308848839709L; + + public ConsecutivePointsSameErrorProperty() { + super(); + } + + public ConsecutivePointsSameErrorProperty(ConsecutivePointsSameError cpse) { + super(cpse); + } + + @Override + public Class getTargetType() { + return ConsecutivePointsSameError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/EdgeListProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/EdgeListProperty.java new file mode 100644 index 0000000..fce97f5 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/EdgeListProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.EdgeList; + +public class EdgeListProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 2336457353379630637L; + + public EdgeListProperty() { + super(); + } + + public EdgeListProperty(EdgeList el) { + super(el); + } + + @Override + public Class getTargetType() { + return EdgeList.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/EdgeProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/EdgeProperty.java new file mode 100644 index 0000000..efdd34c --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/EdgeProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.Edge; + +public class EdgeProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3087019382945722678L; + + public EdgeProperty() { + super(); + } + + public EdgeProperty(Edge e) { + super(e); + } + + @Override + public Class getTargetType() { + return Edge.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ErrorProperty.java new file mode 100644 index 0000000..ca747db --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.Error; + +public class ErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 1405693040162674820L; + + public ErrorProperty() { + super(); + } + + public ErrorProperty(Error e) { + super(e); + } + + @Override + public Class getTargetType() { + return Error.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/FeatureStatisticsProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/FeatureStatisticsProperty.java new file mode 100644 index 0000000..5d31a9b --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/FeatureStatisticsProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.FeatureStatistics; + +public class FeatureStatisticsProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 4725452691563906950L; + + public FeatureStatisticsProperty() { + super(); + } + + public FeatureStatisticsProperty(FeatureStatistics fs) { + super(fs); + } + + @Override + public Class getTargetType() { + return FeatureStatistics.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/FilterProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/FilterProperty.java new file mode 100644 index 0000000..8342179 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/FilterProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.Filter; + +public class FilterProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 2202767186145199981L; + + public FilterProperty() { + super(); + } + + public FilterProperty(Filter f) { + super(f); + } + + @Override + public Class getTargetType() { + return Filter.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/GlobalParametersProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/GlobalParametersProperty.java new file mode 100644 index 0000000..eba5b1a --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/GlobalParametersProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.GlobalParameters; + +public class GlobalParametersProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 4688667898762529244L; + + public GlobalParametersProperty() { + super(); + } + + public GlobalParametersProperty(GlobalParameters gp) { + super(gp); + } + + @Override + public Class getTargetType() { + return GlobalParameters.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/HoleOutsideErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/HoleOutsideErrorProperty.java new file mode 100644 index 0000000..9a0a0b2 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/HoleOutsideErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.HoleOutsideError; + +public class HoleOutsideErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 4196743912365692331L; + + public HoleOutsideErrorProperty() { + super(); + } + + public HoleOutsideErrorProperty(HoleOutsideError gepholeoutside) { + super(gepholeoutside); + } + + @Override + public Class getTargetType() { + return HoleOutsideError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/InnerRingsNestedErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/InnerRingsNestedErrorProperty.java new file mode 100644 index 0000000..9957c83 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/InnerRingsNestedErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.InnerRingsNestedError; + +public class InnerRingsNestedErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3036689276151551958L; + + public InnerRingsNestedErrorProperty() { + super(); + } + + public InnerRingsNestedErrorProperty(InnerRingsNestedError irne) { + super(irne); + } + + @Override + public Class getTargetType() { + return InnerRingsNestedError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/InteriorDisconnectedErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/InteriorDisconnectedErrorProperty.java new file mode 100644 index 0000000..f50d443 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/InteriorDisconnectedErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.InteriorDisconnectedError; + +public class InteriorDisconnectedErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 84761615612278576L; + + public InteriorDisconnectedErrorProperty() { + super(); + } + + public InteriorDisconnectedErrorProperty(InteriorDisconnectedError ide) { + super(ide); + } + + @Override + public Class getTargetType() { + return InteriorDisconnectedError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/IntersectingRingsErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/IntersectingRingsErrorProperty.java new file mode 100644 index 0000000..bc97fa0 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/IntersectingRingsErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.IntersectingRingsError; + +public class IntersectingRingsErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 1608106125509503698L; + + public IntersectingRingsErrorProperty() { + super(); + } + + public IntersectingRingsErrorProperty(IntersectingRingsError ire) { + super(ire); + } + + @Override + public Class getTargetType() { + return IntersectingRingsError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/MultipleComponentsErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/MultipleComponentsErrorProperty.java new file mode 100644 index 0000000..32e1820 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/MultipleComponentsErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.MultipleComponentsError; + +public class MultipleComponentsErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 5294284044767336204L; + + public MultipleComponentsErrorProperty() { + super(); + } + + public MultipleComponentsErrorProperty(MultipleComponentsError mce) { + super(mce); + } + + @Override + public Class getTargetType() { + return MultipleComponentsError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/NonManifoldEdgeErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/NonManifoldEdgeErrorProperty.java new file mode 100644 index 0000000..c033d34 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/NonManifoldEdgeErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.NonManifoldEdgeError; + +public class NonManifoldEdgeErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 8331219256576062664L; + + public NonManifoldEdgeErrorProperty() { + super(); + } + + public NonManifoldEdgeErrorProperty(NonManifoldEdgeError nmee) { + super(nmee); + } + + @Override + public Class getTargetType() { + return NonManifoldEdgeError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/NonManifoldVertexErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/NonManifoldVertexErrorProperty.java new file mode 100644 index 0000000..e650444 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/NonManifoldVertexErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.NonManifoldVertexError; + +public class NonManifoldVertexErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3582401333822811835L; + + public NonManifoldVertexErrorProperty() { + super(); + } + + public NonManifoldVertexErrorProperty(NonManifoldVertexError nmve) { + super(nmve); + } + + @Override + public Class getTargetType() { + return NonManifoldVertexError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/OrientationRingsSameErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/OrientationRingsSameErrorProperty.java new file mode 100644 index 0000000..1a424b0 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/OrientationRingsSameErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.OrientationRingsSameError; + +public class OrientationRingsSameErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 7924476601392934115L; + + public OrientationRingsSameErrorProperty() { + super(); + } + + public OrientationRingsSameErrorProperty(OrientationRingsSameError orse) { + super(orse); + } + + @Override + public Class getTargetType() { + return OrientationRingsSameError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ParameterProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ParameterProperty.java new file mode 100644 index 0000000..25e07d1 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ParameterProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.Parameter; + +public class ParameterProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3826499653407209573L; + + public ParameterProperty() { + super(); + } + + public ParameterProperty(Parameter p) { + super(p); + } + + @Override + public Class getTargetType() { + return Parameter.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PlanarDistancePlaneErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PlanarDistancePlaneErrorProperty.java new file mode 100644 index 0000000..e1932b8 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PlanarDistancePlaneErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.PlanarDistancePlaneError; + +public class PlanarDistancePlaneErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 805859214704441973L; + + public PlanarDistancePlaneErrorProperty() { + super(); + } + + public PlanarDistancePlaneErrorProperty(PlanarDistancePlaneError pdpe) { + super(pdpe); + } + + @Override + public Class getTargetType() { + return PlanarDistancePlaneError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PlanarNormalsDeviationErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PlanarNormalsDeviationErrorProperty.java new file mode 100644 index 0000000..bb24833 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PlanarNormalsDeviationErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.PlanarNormalsDeviationError; + +public class PlanarNormalsDeviationErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 2464000011383104477L; + + public PlanarNormalsDeviationErrorProperty() { + super(); + } + + public PlanarNormalsDeviationErrorProperty(PlanarNormalsDeviationError pnde) { + super(pnde); + } + + @Override + public Class getTargetType() { + return PlanarNormalsDeviationError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PolygonIdListProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PolygonIdListProperty.java new file mode 100644 index 0000000..5b8cf32 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PolygonIdListProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.PolygonIdList; + +public class PolygonIdListProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 8212792040324739831L; + + public PolygonIdListProperty() { + super(); + } + + public PolygonIdListProperty(PolygonIdList pil) { + super(pil); + } + + @Override + public Class getTargetType() { + return PolygonIdList.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PolygonWrongOrientationErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PolygonWrongOrientationErrorProperty.java new file mode 100644 index 0000000..b915a46 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/PolygonWrongOrientationErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.PolygonWrongOrientationError; + +public class PolygonWrongOrientationErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 1919616461719834613L; + + public PolygonWrongOrientationErrorProperty() { + super(); + } + + public PolygonWrongOrientationErrorProperty(PolygonWrongOrientationError pwoe) { + super(pwoe); + } + + @Override + public Class getTargetType() { + return PolygonWrongOrientationError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RequirementProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RequirementProperty.java new file mode 100644 index 0000000..5819edd --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RequirementProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.Requirement; + +public class RequirementProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 1084132873819307011L; + + public RequirementProperty() { + super(); + } + + public RequirementProperty(Requirement r) { + super(r); + } + + @Override + public Class getTargetType() { + return Requirement.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingNotClosedErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingNotClosedErrorProperty.java new file mode 100644 index 0000000..e12a96a --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingNotClosedErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.RingNotClosedError; + +public class RingNotClosedErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 4846831546489598508L; + + public RingNotClosedErrorProperty() { + super(); + } + + public RingNotClosedErrorProperty(RingNotClosedError rnce) { + super(rnce); + } + + @Override + public Class getTargetType() { + return RingNotClosedError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingSelfIntersectionErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingSelfIntersectionErrorProperty.java new file mode 100644 index 0000000..20eacca --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingSelfIntersectionErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.RingSelfIntersectionError; + +public class RingSelfIntersectionErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3588871792641629601L; + + public RingSelfIntersectionErrorProperty() { + super(); + } + + public RingSelfIntersectionErrorProperty(RingSelfIntersectionError rsie) { + super(rsie); + } + + @Override + public Class getTargetType() { + return RingSelfIntersectionError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingTooFewPointsErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingTooFewPointsErrorProperty.java new file mode 100644 index 0000000..b42eb98 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/RingTooFewPointsErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.RingTooFewPointsError; + +public class RingTooFewPointsErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3447025584248177548L; + + public RingTooFewPointsErrorProperty() { + super(); + } + + public RingTooFewPointsErrorProperty(RingTooFewPointsError rtfpep) { + super(rtfpep); + } + + @Override + public Class getTargetType() { + return RingTooFewPointsError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SemanticAttributeMissingErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SemanticAttributeMissingErrorProperty.java new file mode 100644 index 0000000..6d917b5 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SemanticAttributeMissingErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.SemanticAttributeMissingError; + +public class SemanticAttributeMissingErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 5697199293825250908L; + + public SemanticAttributeMissingErrorProperty() { + super(); + } + + public SemanticAttributeMissingErrorProperty(SemanticAttributeMissingError same) { + super(same); + } + + @Override + public Class getTargetType() { + return SemanticAttributeMissingError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SemanticAttributeWrongValueErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SemanticAttributeWrongValueErrorProperty.java new file mode 100644 index 0000000..9a567d1 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SemanticAttributeWrongValueErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.SemanticAttributeWrongValueError; + +public class SemanticAttributeWrongValueErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 7617151896616913019L; + + public SemanticAttributeWrongValueErrorProperty() { + super(); + } + + public SemanticAttributeWrongValueErrorProperty(SemanticAttributeWrongValueError sawve) { + super(sawve); + } + + @Override + public Class getTargetType() { + return SemanticAttributeWrongValueError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidNotClosedErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidNotClosedErrorProperty.java new file mode 100644 index 0000000..23a72de --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidNotClosedErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.SolidNotClosedError; + +public class SolidNotClosedErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 1268531869052860508L; + + public SolidNotClosedErrorProperty() { + super(); + } + + public SolidNotClosedErrorProperty(SolidNotClosedError snce) { + super(snce); + } + + @Override + public Class getTargetType() { + return SolidNotClosedError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidSelfIntersectionErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidSelfIntersectionErrorProperty.java new file mode 100644 index 0000000..5199803 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidSelfIntersectionErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.SolidSelfIntersectionError; + +public class SolidSelfIntersectionErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 6578584720594833303L; + + public SolidSelfIntersectionErrorProperty() { + super(); + } + + public SolidSelfIntersectionErrorProperty(SolidSelfIntersectionError ssie) { + super(ssie); + } + + @Override + public Class getTargetType() { + return SolidSelfIntersectionError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidTooFewPolygonsErrorProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidTooFewPolygonsErrorProperty.java new file mode 100644 index 0000000..56f7e1f --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/SolidTooFewPolygonsErrorProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.SolidTooFewPolygonsError; + +public class SolidTooFewPolygonsErrorProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 998050793852068510L; + + public SolidTooFewPolygonsErrorProperty() { + super(); + } + + public SolidTooFewPolygonsErrorProperty(SolidTooFewPolygonsError stfpe) { + super(stfpe); + } + + @Override + public Class getTargetType() { + return SolidTooFewPolygonsError.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/StatisticsProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/StatisticsProperty.java new file mode 100644 index 0000000..d67173d --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/StatisticsProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.Statistics; + +public class StatisticsProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 4264016075264322157L; + + public StatisticsProperty() { + super(); + } + + public StatisticsProperty(Statistics s) { + super(s); + } + + @Override + public Class getTargetType() { + return Statistics.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationPlanProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationPlanProperty.java new file mode 100644 index 0000000..60190a6 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationPlanProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.ValidationPlan; + +public class ValidationPlanProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 4542660904311227314L; + + public ValidationPlanProperty() { + super(); + } + + public ValidationPlanProperty(ValidationPlan vp) { + super(vp); + } + + @Override + public Class getTargetType() { + return ValidationPlan.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationProperty.java new file mode 100644 index 0000000..afe4127 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.Validation; + +public class ValidationProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 3423466580266018906L; + + public ValidationProperty() { + super(); + } + + public ValidationProperty(Validation v) { + super(v); + } + + @Override + public Class getTargetType() { + return Validation.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationResultProperty.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationResultProperty.java new file mode 100644 index 0000000..c7e45d0 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/properties/ValidationResultProperty.java @@ -0,0 +1,43 @@ +/*- + * 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.properties; + +import java.io.Serial; + +import org.citygml4j.core.model.ade.ADEObject; +import org.xmlobjects.gml.model.base.AbstractInlineProperty; + +import de.hft.stuttgart.quality.model.types.ValidationResult; + +public class ValidationResultProperty extends AbstractInlineProperty implements ADEObject { + + @Serial + private static final long serialVersionUID = 765825311371672821L; + + public ValidationResultProperty() { + super(); + } + + public ValidationResultProperty(ValidationResult vr) { + super(vr); + } + + @Override + public Class getTargetType() { + return ValidationResult.class; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractError.java new file mode 100644 index 0000000..520b6a9 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractError.java @@ -0,0 +1,27 @@ +/*- + * 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.types; + +import java.io.Serial; + +import org.xmlobjects.gml.model.GMLObject; + +public abstract class AbstractError extends GMLObject { + + @Serial + private static final long serialVersionUID = 4456303926951620441L; + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InteriorDisconnectedType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractGeometryError.java similarity index 67% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InteriorDisconnectedType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractGeometryError.java index a8daaf0..58234e2 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InteriorDisconnectedType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractGeometryError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,11 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "GE_P_INTERIOR_DISCONNECTED") -public class InteriorDisconnectedType extends PolygonErrorType { +public abstract class AbstractGeometryError extends AbstractError { + + @Serial + private static final long serialVersionUID = 5584980708521134866L; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractPolygonError.java similarity index 71% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonError.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractPolygonError.java index 12e9c5e..47d3c46 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractPolygonError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,19 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -public abstract class PolygonError extends ValidationError { +import java.io.Serial; - private static final long serialVersionUID = 4694297467768369526L; - +public abstract class AbstractPolygonError extends AbstractGeometryError { + + @Serial + private static final long serialVersionUID = 8765755615504522764L; + private String polygonId; + public String getPolygonId() { + return polygonId; + } + public void setPolygonId(String polygonId) { this.polygonId = polygonId; } - public String getPolygonId() { - return polygonId; - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/OrientationRingsSameType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractRingError.java similarity index 69% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/OrientationRingsSameType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractRingError.java index a625724..41f9f90 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/OrientationRingsSameType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractRingError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,21 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "GE_P_ORIENTATION_RINGS_SAME") -public class OrientationRingsSameType extends PolygonErrorType { +public abstract class AbstractRingError extends AbstractGeometryError { - private String linearRingId; - - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } + @Serial + private static final long serialVersionUID = 6406932524599157467L; + + private String linearRingId; public String getLinearRingId() { return linearRingId; } + public void setLinearRingId(String linearRingId) { + this.linearRingId = linearRingId; + } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SemanticError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractSemanticError.java similarity index 67% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SemanticError.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractSemanticError.java index b2741c3..8a2bc67 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SemanticError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractSemanticError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,10 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -public abstract class SemanticError extends ValidationError { +import java.io.Serial; - private static final long serialVersionUID = 8986289777859562928L; +public abstract class AbstractSemanticError extends AbstractError { + + @Serial + private static final long serialVersionUID = 3754322190455789991L; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractSolidError.java similarity index 69% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidError.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractSolidError.java index d20493c..3c326b5 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AbstractSolidError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,18 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -public abstract class SolidError extends ValidationError { - private static final long serialVersionUID = 6430138970493794998L; - - private String geometryId; +import java.io.Serial; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } +public abstract class AbstractSolidError extends AbstractGeometryError { + + @Serial + private static final long serialVersionUID = 8616094562996823088L; + + private String geometryId; public String getGeometryId() { return geometryId; } + + public void setGeometryId(String geometryId) { + this.geometryId = geometryId; + } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AllPolygonsOrientedWrongError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AllPolygonsOrientedWrongError.java new file mode 100644 index 0000000..68dba4f --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/AllPolygonsOrientedWrongError.java @@ -0,0 +1,25 @@ +/*- + * 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.types; + +import java.io.Serial; + +public abstract class AllPolygonsOrientedWrongError extends AbstractSolidError { + + @Serial + private static final long serialVersionUID = 4295306777217062184L; + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AllPolygonsWrongOrientation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Checking.java similarity index 50% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AllPolygonsWrongOrientation.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Checking.java index 0b384b7..b8031f9 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AllPolygonsWrongOrientation.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Checking.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,22 +13,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -import org.citygml4j.builder.copy.CopyBuilder; +import java.io.Serial; -public class AllPolygonsWrongOrientation extends SolidError { +import org.xmlobjects.gml.model.GMLObject; - private static final long serialVersionUID = 3817224755569965908L; +import de.hft.stuttgart.quality.model.enums.TopLevelFeatureType; - @Override - public String toString() { - return "AllPolygonsWrongOrientation [geometryId=" + getGeometryId() + "]"; +public abstract class Checking extends GMLObject { + + @Serial + private static final long serialVersionUID = 8248598807454312291L; + + private TopLevelFeatureType featureType; + + public TopLevelFeatureType getFeatureType() { + return featureType; } - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new AllPolygonsWrongOrientation(), copyBuilder); + public void setFeatureType(TopLevelFeatureType featureType) { + this.featureType = featureType; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/MultipleConnectedComponentsType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ComponentList.java similarity index 54% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/MultipleConnectedComponentsType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ComponentList.java index 0507eb0..6e05df8 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/MultipleConnectedComponentsType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ComponentList.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,31 +13,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; +import java.io.Serial; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement(name = "GE_S_MULTIPLE_CONNECTED_COMPONENTS") -public class MultipleConnectedComponentsType extends SolidErrorType { - - @XmlElementWrapper - @XmlElement(name = "component") - private List components; - - public boolean isSetComponents() { - return components != null && !components.isEmpty(); - } - - public List getComponents() { +import org.xmlobjects.gml.model.GMLObject; + +import de.hft.stuttgart.quality.model.properties.PolygonIdListProperty; + +public abstract class ComponentList extends GMLObject { + + @Serial + private static final long serialVersionUID = 7846916128728837265L; + + private List components; + + public List getComponents() { if (components == null) { components = new ArrayList<>(); } return components; } + public void setComponents(List components) { + this.components = components; + } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ConsecutivePointsSame.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ConsecutivePointsSameError.java similarity index 61% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ConsecutivePointsSame.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ConsecutivePointsSameError.java index 91cb869..203ec2a 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ConsecutivePointsSame.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ConsecutivePointsSameError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,43 +13,39 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.gml.geometry.primitives.DirectPosition; +import java.io.Serial; + +import org.xmlobjects.gml.model.geometry.DirectPosition; + +public abstract class ConsecutivePointsSameError extends AbstractRingError { + + @Serial + private static final long serialVersionUID = 960107689338308020L; -public class ConsecutivePointsSame extends RingError { - - private static final long serialVersionUID = -838421312521561747L; - private DirectPosition vertex1; private DirectPosition vertex2; - - public void setVertex1(DirectPosition vertex1) { - this.vertex1 = vertex1; - } - - public void setVertex2(DirectPosition vertex2) { - this.vertex2 = vertex2; - } public DirectPosition getVertex1() { return vertex1; } - + + public void setVertex1(DirectPosition vertex1) { + this.vertex1 = vertex1; + } + public DirectPosition getVertex2() { return vertex2; } - @Override - public String toString() { - return "ConsecutivePointsSame [linearRingId=" + getLinearRingId() + ", vertex1=" + vertex1 + ", vertex2=" + vertex2 - + "]"; + public void setVertex2(DirectPosition vertex2) { + this.vertex2 = vertex2; } @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new ConsecutivePointsSame(), copyBuilder); + public String toString() { + return "ConsecutivePointsSameError [vertex1=" + vertex1 + ", vertex2=" + vertex2 + "]"; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Edge.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Edge.java similarity index 65% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Edge.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Edge.java index d78e694..a81ded6 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Edge.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Edge.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,33 +13,40 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -import java.io.Serializable; +import java.io.Serial; -import org.citygml4j.model.gml.geometry.primitives.DirectPosition; +import org.xmlobjects.gml.model.GMLObject; +import org.xmlobjects.gml.model.geometry.DirectPosition; + +public abstract class Edge extends GMLObject { + + @Serial + private static final long serialVersionUID = 8021062845313752146L; -public class Edge implements Serializable { - - private static final long serialVersionUID = -5076265818764666094L; - private DirectPosition from; private DirectPosition to; - + + public DirectPosition getFrom() { + return from; + } + public void setFrom(DirectPosition from) { this.from = from; } - + + public DirectPosition getTo() { + return to; + } + public void setTo(DirectPosition to) { this.to = to; } - - public DirectPosition getFrom() { - return from; - } - - public DirectPosition getTo() { - return to; + + @Override + public String toString() { + return "Edge [from=" + from + ", to=" + to + "]"; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldEdge.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/EdgeList.java similarity index 57% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldEdge.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/EdgeList.java index 3d07d31..472ca77 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldEdge.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/EdgeList.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,32 +13,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; +import java.io.Serial; import java.util.ArrayList; import java.util.List; -import org.citygml4j.builder.copy.CopyBuilder; +import org.xmlobjects.gml.model.GMLObject; -public class NonManifoldEdge extends SolidError { +import de.hft.stuttgart.quality.model.properties.EdgeProperty; - private static final long serialVersionUID = -4312748985706248178L; +public abstract class EdgeList extends GMLObject { - private List edges; + @Serial + private static final long serialVersionUID = 5900643456940461301L; + + private List edges; - public boolean isSetEdges() { - return edges != null && !edges.isEmpty(); - } - - public List getEdges() { + public List getEdges() { if (edges == null) { edges = new ArrayList<>(); } return edges; } - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new NonPlanarNormalsDeviation(), copyBuilder); + public void setEdges(List edges) { + this.edges = edges; } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorStatistics.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Error.java similarity index 51% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorStatistics.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Error.java index 8b00693..3f08fe8 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorStatistics.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Error.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,45 +13,41 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import java.io.Serializable; +import java.io.Serial; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlValue; +import org.xmlobjects.gml.model.GMLObject; -@XmlAccessorType(XmlAccessType.FIELD) -public class ErrorStatistics implements Serializable { - - private static final long serialVersionUID = -1007447539987946146L; +import de.hft.stuttgart.quality.model.enums.ErrorId; - @XmlAttribute +public abstract class Error extends GMLObject { + + @Serial + private static final long serialVersionUID = 2447962257841143458L; + + private int occurences; private ErrorId name; - - @XmlValue - private int amount; - - public void setName(ErrorId name) { - this.name = name; + + public int getOccurences() { + return occurences; + } + + public void setOccurences(int occurences) { + this.occurences = occurences; } - + public ErrorId getName() { return name; } - - public void setAmount(int amount) { - this.amount = amount; - } - - public int getAmount() { - return amount; + + public void setName(ErrorId name) { + this.name = name; } @Override public String toString() { - return "ErrorStatistics [name=" + name + ", amount=" + amount + "]"; + return "Error [occurences=" + occurences + ", name=" + name + "]"; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/FeatureStatistics.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/FeatureStatistics.java similarity index 52% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/FeatureStatistics.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/FeatureStatistics.java index 3cc3227..6355a18 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/FeatureStatistics.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/FeatureStatistics.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,52 +13,34 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import java.io.Serializable; +import java.io.Serial; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlValue; +import org.xmlobjects.gml.model.GMLObject; -@XmlAccessorType(XmlAccessType.FIELD) -public class FeatureStatistics implements Serializable { +public abstract class FeatureStatistics extends GMLObject { - private static final long serialVersionUID = 5794335930507488398L; + @Serial + private static final long serialVersionUID = 5835765260535725839L; - @XmlAttribute private int numChecked; - - @XmlValue private int numErrors; - - public FeatureStatistics() { - } - - public FeatureStatistics(int numChecked, int numErrors) { - this.numChecked = numChecked; - this.numErrors = numErrors; + + public int getNumChecked() { + return numChecked; } public void setNumChecked(int numChecked) { this.numChecked = numChecked; } - - public void setNumErrors(int numErrors) { - this.numErrors = numErrors; - } - - public int getNumChecked() { - return numChecked; - } - + public int getNumErrors() { return numErrors; } - @Override - public String toString() { - return "FeatureStatistics [numChecked=" + numChecked + ", numErrors=" + numErrors + "]"; + public void setNumErrors(int numErrors) { + this.numErrors = numErrors; } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldEdgeType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Filter.java similarity index 50% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldEdgeType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Filter.java index aac1ac8..7e9539b 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldEdgeType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Filter.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,31 +13,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; +import java.io.Serial; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; -import javax.xml.bind.annotation.XmlRootElement; +import org.xmlobjects.gml.model.GMLObject; -@XmlRootElement(name = "GE_S_NON_MANIFOLD_EDGE") -public class NonManifoldEdgeType extends SolidErrorType { +import de.hft.stuttgart.quality.model.properties.CheckingProperty; - @XmlElementWrapper - @XmlElement(name = "edge") - private List edges; +public abstract class Filter extends GMLObject { - public boolean isSetEdges() { - return edges != null && !edges.isEmpty(); - } + @Serial + private static final long serialVersionUID = 2766323821940477659L; + + private List checking; - public List getEdges() { - if (edges == null) { - edges = new ArrayList<>(); + public List getChecking() { + if (checking == null) { + checking = new ArrayList<>(); } - return edges; + return checking; + } + + public void setChecking(List checking) { + this.checking = checking; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/GlobalParameters.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/GlobalParameters.java new file mode 100644 index 0000000..95473f0 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/GlobalParameters.java @@ -0,0 +1,44 @@ +/*- + * 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.types; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +import org.xmlobjects.gml.model.GMLObject; + +import de.hft.stuttgart.quality.model.properties.ParameterProperty; + +public abstract class GlobalParameters extends GMLObject { + + @Serial + private static final long serialVersionUID = 5470016232480954926L; + + private List parameters; + + public List getParameters() { + if (parameters == null) { + parameters = new ArrayList<>(); + } + return parameters; + } + + public void setParameters(List parameters) { + this.parameters = parameters; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/HoleOutsideType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/HoleOutsideError.java similarity index 66% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/HoleOutsideType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/HoleOutsideError.java index 17d09fc..ce6080e 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/HoleOutsideType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/HoleOutsideError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,21 +13,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "GE_P_HOLE_OUTSIDE") -public class HoleOutsideType extends PolygonErrorType { +public abstract class HoleOutsideError extends AbstractPolygonError { + + @Serial + private static final long serialVersionUID = 7823516103018988170L; private String linearRingId; + public String getLinearRingId() { + return linearRingId; + } + public void setLinearRingId(String linearRingId) { this.linearRingId = linearRingId; } - public String getLinearRingId() { - return linearRingId; + @Override + public String toString() { + return "HoleOutsideError [linearRingId=" + linearRingId + "]"; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InnerRingsNested.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/InnerRingsNestedError.java similarity index 70% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InnerRingsNested.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/InnerRingsNestedError.java index b1f886d..aa34d17 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InnerRingsNested.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/InnerRingsNestedError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,35 +13,37 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -import org.citygml4j.builder.copy.CopyBuilder; +import java.io.Serial; -public class InnerRingsNested extends PolygonError { +public abstract class InnerRingsNestedError extends AbstractPolygonError { - private static final long serialVersionUID = 2291087505629924993L; + @Serial + private static final long serialVersionUID = 6801491749796411678L; private String linearRingId1; private String linearRingId2; - public void setLinearRingId1(String linearRingId1) { - this.linearRingId1 = linearRingId1; - } - - public void setLinearRingId2(String linearRingId2) { - this.linearRingId2 = linearRingId2; - } - public String getLinearRingId1() { return linearRingId1; } + public void setLinearRingId1(String linearRingId1) { + this.linearRingId1 = linearRingId1; + } + public String getLinearRingId2() { return linearRingId2; } + public void setLinearRingId2(String linearRingId2) { + this.linearRingId2 = linearRingId2; + } + @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new InnerRingsNested(), copyBuilder); + public String toString() { + return "InnerRingsNestedError [linearRingId1=" + linearRingId1 + ", linearRingId2=" + linearRingId2 + "]"; } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/InteriorDisconnectedError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/InteriorDisconnectedError.java new file mode 100644 index 0000000..ebacc2b --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/InteriorDisconnectedError.java @@ -0,0 +1,25 @@ +/*- + * 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.types; + +import java.io.Serial; + +public abstract class InteriorDisconnectedError extends AbstractPolygonError { + + @Serial + private static final long serialVersionUID = 8270468563578479182L; + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/IntersectingRingsType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/IntersectingRingsError.java similarity index 69% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/IntersectingRingsType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/IntersectingRingsError.java index 7f47eef..4341c8e 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/IntersectingRingsType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/IntersectingRingsError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,30 +13,37 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "GE_P_INTERSECTING_RINGS") -public class IntersectingRingsType extends PolygonErrorType { +public abstract class IntersectingRingsError extends AbstractPolygonError { + + @Serial + private static final long serialVersionUID = 4733342962974436966L; private String linearRingId1; private String linearRingId2; + public String getLinearRingId1() { + return linearRingId1; + } + public void setLinearRingId1(String linearRingId1) { this.linearRingId1 = linearRingId1; } - public String getLinearRingId1() { - return linearRingId1; + public String getLinearRingId2() { + return linearRingId2; } public void setLinearRingId2(String linearRingId2) { this.linearRingId2 = linearRingId2; } - public String getLinearRingId2() { - return linearRingId2; + @Override + public String toString() { + return "IntersectingRingsError [linearRingId1=" + linearRingId1 + ", linearRingId2=" + linearRingId2 + "]"; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidNotClosed.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/MultipleComponentsError.java similarity index 57% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidNotClosed.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/MultipleComponentsError.java index 71a9b13..fb6c0eb 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidNotClosed.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/MultipleComponentsError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,32 +13,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; +import java.io.Serial; import java.util.ArrayList; import java.util.List; -import org.citygml4j.builder.copy.CopyBuilder; +import de.hft.stuttgart.quality.model.properties.ComponentListProperty; -public class SolidNotClosed extends SolidError { +public abstract class MultipleComponentsError extends AbstractSolidError { - private static final long serialVersionUID = 4609395125395073697L; + @Serial + private static final long serialVersionUID = 4322219502819024437L; - private List edges; + private List edges; - public boolean isSetEdges() { - return edges != null && !edges.isEmpty(); - } - - public List getEdges() { + public List getEdges() { if (edges == null) { edges = new ArrayList<>(); } return edges; } - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new SolidNotClosed(), copyBuilder); + public void setEdges(List edges) { + this.edges = edges; } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPoints.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java similarity index 54% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPoints.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java index 7e12722..7d0ba0a 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPoints.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,21 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -import org.citygml4j.builder.copy.CopyBuilder; +import java.io.Serial; -public class TooFewPoints extends RingError { +import de.hft.stuttgart.quality.model.properties.EdgeListProperty; - private static final long serialVersionUID = -904319347280328865L; - - @Override - public String toString() { - return "TooFewPoints [linearRingId=" + getLinearRingId() + "]"; +public abstract class NonManifoldEdgeError extends AbstractSolidError { + + @Serial + private static final long serialVersionUID = 3499800929524507025L; + + private EdgeListProperty edges; + + public EdgeListProperty getEdges() { + return edges; } - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new TooFewPoints(), copyBuilder); + public void setEdges(EdgeListProperty edges) { + this.edges = edges; } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldVertexType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java similarity index 57% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldVertexType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java index 7b8f3a2..b7f33e0 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldVertexType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,23 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -import net.opengis.gml.DirectPositionType; +import org.xmlobjects.gml.model.geometry.DirectPosition; -@XmlRootElement(name = "GE_S_NON_MANIFOLD_VERTEX") -public class NonManifoldVertexType extends SolidErrorType { +public abstract class NonManifoldVertexError extends AbstractSolidError { - private DirectPositionType vertex; + @Serial + private static final long serialVersionUID = 6428627491730618046L; + + private DirectPosition vertex; - public void setVertex(DirectPositionType vertex) { - this.vertex = vertex; + public DirectPosition getVertex() { + return vertex; } - public DirectPositionType getVertex() { - return vertex; + public void setVertex(DirectPosition vertex) { + this.vertex = vertex; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/OrientationRingsSameError.java similarity index 56% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingError.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/OrientationRingsSameError.java index d17e507..b86a289 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/OrientationRingsSameError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,19 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -public abstract class RingError extends ValidationError { +import java.io.Serial; - private static final long serialVersionUID = -8610600028811350500L; - - private String linearRingId; +public abstract class OrientationRingsSameError extends AbstractPolygonError { - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; + @Serial + private static final long serialVersionUID = 5732797947859046889L; + + private String linearRing; + + public String getLinearRing() { + return linearRing; } - public String getLinearRingId() { - return linearRingId; + public void setLinearRing(String linearRing) { + this.linearRing = linearRing; } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Parameter.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Parameter.java similarity index 58% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Parameter.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Parameter.java index cb12193..3431064 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Parameter.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Parameter.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,58 +13,48 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import java.io.Serializable; +import java.io.Serial; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import org.xmlobjects.gml.model.GMLObject; -@XmlType(name = "parameter") -@XmlAccessorType(XmlAccessType.FIELD) -public class Parameter implements Serializable { +public abstract class Parameter extends GMLObject { - private static final long serialVersionUID = 3704749975901280058L; + @Serial + private static final long serialVersionUID = 3493525795867922745L; - @XmlAttribute(name = "name") private String name; - - @XmlAttribute(required = false) private String uom; - - @XmlValue private String value; + public String getName() { + return name; + } + public void setName(String name) { this.name = name; } - public String getName() { - return name; + public String getUom() { + return uom; } public void setUom(String uom) { this.uom = uom; } - public void setValue(String value) { - this.value = value; - } - - public String getUom() { - return uom; - } - public String getValue() { return value; } + public void setValue(String value) { + this.value = value; + } + @Override public String toString() { - return "ParameterType [name=" + name + ", uom=" + uom + ", value=" + value + "]"; + return "Parameter [name=" + name + ", uom=" + uom + ", value=" + value + "]"; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarDistancePlane.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java similarity index 59% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarDistancePlane.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java index fd0292f..58d20c8 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarDistancePlane.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,43 +13,40 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.gml.geometry.primitives.DirectPosition; -import org.citygml4j.model.gml.measures.Length; +import java.io.Serial; -public class NonPlanarDistancePlane extends PolygonError { +import org.xmlobjects.gml.model.geometry.DirectPosition; +import org.xmlobjects.gml.model.measures.Length; + +public abstract class PlanarDistancePlaneError extends AbstractPolygonError { + + @Serial + private static final long serialVersionUID = 9186823395923829178L; - private static final long serialVersionUID = -3428574131554438219L; - private DirectPosition vertex; private Length distance; + public DirectPosition getVertex() { + return vertex; + } public void setVertex(DirectPosition vertex) { this.vertex = vertex; } - public void setDistance(Length distance) { - this.distance = distance; - } - - public DirectPosition getVertex() { - return vertex; - } - public Length getDistance() { return distance; } - @Override - public String toString() { - return "NonPlanarDistancePlane [polygonId=" + getPolygonId() + ", vertex=" + vertex + ", distance=" + distance + "]"; + public void setDistance(Length distance) { + this.distance = distance; } @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new NonPlanarDistancePlane(), copyBuilder); + public String toString() { + return "PlanarDistancePlaneError [vertex=" + vertex + ", distance=" + distance + "]"; } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarNormalsDeviationType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java similarity index 59% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarNormalsDeviationType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java index 5471ad6..058c52e 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarNormalsDeviationType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,23 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -import net.opengis.gml.AngleType; +import org.xmlobjects.gml.model.measures.Angle; -@XmlRootElement(name = "GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION") -public class NonPlanarNormalsDeviationType extends PolygonErrorType { +public abstract class PlanarNormalsDeviationError extends AbstractPolygonError { - private AngleType deviation; + @Serial + private static final long serialVersionUID = 5914728363336771016L; - public void setDeviation(AngleType deviation) { - this.deviation = deviation; - } + private Angle deviation; - public AngleType getDeviation() { + public Angle getDeviation() { return deviation; } + public void setDeviation(Angle deviation) { + this.deviation = deviation; + } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Component.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonIdList.java similarity index 63% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Component.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonIdList.java index f1b2209..2bf6f9d 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/Component.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonIdList.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,25 +13,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import java.io.Serializable; +import java.io.Serial; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlElement; +import org.xmlobjects.gml.model.GMLObject; -public class Component implements Serializable { +public abstract class PolygonIdList extends GMLObject { - private static final long serialVersionUID = 75005650370135888L; + @Serial + private static final long serialVersionUID = 4396447239956257299L; + + private List polygonIds; - @XmlElement(name = "polygonId") - private List polygonIds; - public List getPolygonIds() { if (polygonIds == null) { polygonIds = new ArrayList<>(); } return polygonIds; } + + public void setPolygonIds(List polygonIds) { + this.polygonIds = polygonIds; + } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidSelfIntersectionType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonWrongOrientationError.java similarity index 76% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidSelfIntersectionType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonWrongOrientationError.java index 58e37bc..efc3f9c 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidSelfIntersectionType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PolygonWrongOrientationError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,30 +13,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "GE_S_SELF_INTERSECTION") -public class SolidSelfIntersectionType extends SolidErrorType { +public abstract class PolygonWrongOrientationError extends AbstractSolidError { + + @Serial + private static final long serialVersionUID = 4975827693656963892L; private String polygonId1; private String polygonId2; - public void setPolygonId1(String polygonId1) { - this.polygonId1 = polygonId1; - } - - public void setPolygonId2(String polygonId2) { - this.polygonId2 = polygonId2; - } - public String getPolygonId1() { return polygonId1; } + public void setPolygonId1(String polygonId1) { + this.polygonId1 = polygonId1; + } + public String getPolygonId2() { return polygonId2; } + public void setPolygonId2(String polygonId2) { + this.polygonId2 = polygonId2; + } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Requirement.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Requirement.java new file mode 100644 index 0000000..53767e6 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Requirement.java @@ -0,0 +1,63 @@ +/*- + * 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.types; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +import org.xmlobjects.gml.model.GMLObject; + +import de.hft.stuttgart.quality.model.enums.RequirementId; +import de.hft.stuttgart.quality.model.properties.ParameterProperty; + +public abstract class Requirement extends GMLObject { + + @Serial + private static final long serialVersionUID = 4428291416242684642L; + + private boolean enabled; + private RequirementId requirementType; + private List parameters; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public RequirementId getRequirementType() { + return requirementType; + } + + public void setRequirementType(RequirementId requirementType) { + this.requirementType = requirementType; + } + + public List getParameters() { + if (parameters == null) { + parameters = new ArrayList<>(); + } + return parameters; + } + + public void setParameters(List parameters) { + this.parameters = parameters; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingNotClosedType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingNotClosedError.java similarity index 67% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingNotClosedType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingNotClosedError.java index e6b9e25..76e1d24 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingNotClosedType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingNotClosedError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,11 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "GE_R_NOT_CLOSED") -public class RingNotClosedType extends RingErrorType { +public abstract class RingNotClosedError extends AbstractRingError { + + @Serial + private static final long serialVersionUID = 3327214274004406000L; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingSelfIntersection.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java similarity index 58% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingSelfIntersection.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java index fd11024..6b92bd3 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingSelfIntersection.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,71 +13,70 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.gml.geometry.primitives.DirectPosition; +import java.io.Serial; -import de.hft.stuttgart.quality.model.jaxb.RingSelfIntType; +import org.xmlobjects.gml.model.geometry.DirectPosition; -public class RingSelfIntersection extends RingError { +import de.hft.stuttgart.quality.model.enums.RingSelfIntType; +import de.hft.stuttgart.quality.model.properties.EdgeProperty; + +public abstract class RingSelfIntersectionError extends AbstractRingError { + + @Serial + private static final long serialVersionUID = 9103800366580888883L; - private static final long serialVersionUID = -4426615638983209222L; - private RingSelfIntType type; - private Edge edge1; - private Edge edge2; + private EdgeProperty edge1; + private EdgeProperty edge2; private DirectPosition vertex1; private DirectPosition vertex2; + public RingSelfIntType getType() { + return type; + } + public void setType(RingSelfIntType type) { this.type = type; } - public void setEdge1(Edge edge1) { - this.edge1 = edge1; + public EdgeProperty getEdge1() { + return edge1; } - public void setEdge2(Edge edge2) { - this.edge2 = edge2; + public void setEdge1(EdgeProperty edge1) { + this.edge1 = edge1; } - public void setVertex1(DirectPosition vertex1) { - this.vertex1 = vertex1; - } - - public void setVertex2(DirectPosition vertex2) { - this.vertex2 = vertex2; + public EdgeProperty getEdge2() { + return edge2; } - public RingSelfIntType getType() { - return type; + public void setEdge2(EdgeProperty edge2) { + this.edge2 = edge2; } - public Edge getEdge1() { - return edge1; + public DirectPosition getVertex1() { + return vertex1; } - public Edge getEdge2() { - return edge2; + public void setVertex1(DirectPosition vertex1) { + this.vertex1 = vertex1; } - public DirectPosition getVertex1() { - return vertex1; - } - public DirectPosition getVertex2() { return vertex2; } - @Override - public String toString() { - return "RingSelfIntersection [linearRingId=" + getLinearRingId() + ", type=" + type + ", edge1=" + edge1 + ", edge2=" - + edge2 + ", vertex1=" + vertex1 + ", vertex2=" + vertex2 + "]"; + public void setVertex2(DirectPosition vertex2) { + this.vertex2 = vertex2; } @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new RingSelfIntersection(), copyBuilder); + public String toString() { + return "RingSelfIntersectionError [type=" + type + ", edge1=" + edge1 + ", edge2=" + edge2 + ", vertex1=" + + vertex1 + ", vertex2=" + vertex2 + "]"; } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AllPolygonsWrongOrientationType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingTooFewPointsError.java similarity index 67% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AllPolygonsWrongOrientationType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingTooFewPointsError.java index f582f22..0b8fa9c 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AllPolygonsWrongOrientationType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingTooFewPointsError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,11 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "GE_S_ALL_POLYGONS_WRONG_ORIENTATION") -public class AllPolygonsWrongOrientationType extends SolidErrorType { +public abstract class RingTooFewPointsError extends AbstractRingError { + + @Serial + private static final long serialVersionUID = 8057350098649982235L; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeWrongValueType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeMissingError.java similarity index 79% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeWrongValueType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeMissingError.java index a3596b9..11a14fa 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeWrongValueType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeMissingError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,12 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "SE_ATTRIBUTE_WRONG_VALUE") -public class AttributeWrongValueType extends SemanticErrorType { +public abstract class SemanticAttributeMissingError extends AbstractSemanticError { + + @Serial + private static final long serialVersionUID = 7157884749606290596L; private String childId; private String attributeName; diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeMissingType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeWrongValueError.java similarity index 78% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeMissingType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeWrongValueError.java index ce13091..1695fb2 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeMissingType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeWrongValueError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,13 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; -import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serial; -@XmlRootElement(name = "SE_ATTRIBUTE_MISSING") -public class AttributeMissingType extends SemanticErrorType { - +public abstract class SemanticAttributeWrongValueError extends AbstractSemanticError { + + @Serial + private static final long serialVersionUID = 3478578364446339884L; + private String childId; private String attributeName; private boolean generic; diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPolygons.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java similarity index 54% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPolygons.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java index 19abc23..30ad8c9 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPolygons.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,21 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model; +package de.hft.stuttgart.quality.model.types; -import org.citygml4j.builder.copy.CopyBuilder; +import java.io.Serial; -public class TooFewPolygons extends SolidError { +import de.hft.stuttgart.quality.model.properties.EdgeListProperty; - private static final long serialVersionUID = -51591095439740599L; +public abstract class SolidNotClosedError extends AbstractSolidError { - @Override - public String toString() { - return "TooFewPolygons [geometryId=" + getGeometryId() + "]"; + @Serial + private static final long serialVersionUID = 297029245173578437L; + + private EdgeListProperty edges; + + public EdgeListProperty getEdges() { + return edges; } - @Override - public Object copy(CopyBuilder copyBuilder) { - return copyTo(new TooFewPolygons(), copyBuilder); + public void setEdges(EdgeListProperty edges) { + this.edges = edges; } + } 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 new file mode 100644 index 0000000..01a8df0 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidSelfIntersectionError.java @@ -0,0 +1,25 @@ +/*- + * 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.types; + +import java.io.Serial; + +public abstract class SolidSelfIntersectionError extends AbstractSolidError { + + @Serial + private static final long serialVersionUID = 5070991901664859830L; + +} 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 new file mode 100644 index 0000000..3ac118c --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidTooFewPolygonsError.java @@ -0,0 +1,25 @@ +/*- + * 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.types; + +import java.io.Serial; + +public abstract class SolidTooFewPolygonsError extends AbstractSolidError { + + @Serial + private static final long serialVersionUID = 1987841643971824973L; + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Statistics.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Statistics.java new file mode 100644 index 0000000..834900e --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Statistics.java @@ -0,0 +1,99 @@ +/*- + * 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.types; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +import org.xmlobjects.gml.model.GMLObject; + +import de.hft.stuttgart.quality.model.properties.ErrorProperty; +import de.hft.stuttgart.quality.model.properties.FeatureStatisticsProperty; + +public abstract class Statistics extends GMLObject { + + @Serial + private static final long serialVersionUID = 2935590283116950203L; + + private FeatureStatisticsProperty numErrorBuildings; + private FeatureStatisticsProperty numErrorVegetation; + private FeatureStatisticsProperty numErrorLandObjects; + private FeatureStatisticsProperty numErrorBridgeObjects; + private FeatureStatisticsProperty numErrorWaterObjects; + private FeatureStatisticsProperty numErrorTransportation; + private List errors; + + public FeatureStatisticsProperty getNumErrorBuildings() { + return numErrorBuildings; + } + + public void setNumErrorBuildings(FeatureStatisticsProperty numErrorBuildings) { + this.numErrorBuildings = numErrorBuildings; + } + + public FeatureStatisticsProperty getNumErrorVegetation() { + return numErrorVegetation; + } + + public void setNumErrorVegetation(FeatureStatisticsProperty numErrorVegetation) { + this.numErrorVegetation = numErrorVegetation; + } + + public FeatureStatisticsProperty getNumErrorLandObjects() { + return numErrorLandObjects; + } + + public void setNumErrorLandObjects(FeatureStatisticsProperty numErrorLandObjects) { + this.numErrorLandObjects = numErrorLandObjects; + } + + public FeatureStatisticsProperty getNumErrorBridgeObjects() { + return numErrorBridgeObjects; + } + + public void setNumErrorBridgeObjects(FeatureStatisticsProperty numErrorBridgeObjects) { + this.numErrorBridgeObjects = numErrorBridgeObjects; + } + + public FeatureStatisticsProperty getNumErrorWaterObjects() { + return numErrorWaterObjects; + } + + public void setNumErrorWaterObjects(FeatureStatisticsProperty numErrorWaterObjects) { + this.numErrorWaterObjects = numErrorWaterObjects; + } + + public FeatureStatisticsProperty getNumErrorTransportation() { + return numErrorTransportation; + } + + public void setNumErrorTransportation(FeatureStatisticsProperty numErrorTransportation) { + this.numErrorTransportation = numErrorTransportation; + } + + public List getErrors() { + if (errors == null) { + errors = new ArrayList<>(); + } + return errors; + } + + public void setErrors(List errors) { + this.errors = errors; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Validation.java similarity index 59% rename from citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationType.java rename to citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Validation.java index af233c9..b1338cf 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Validation.java @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -13,45 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package de.hft.stuttgart.quality.model.jaxb; +package de.hft.stuttgart.quality.model.types; +import java.io.Serial; import java.time.ZonedDateTime; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import org.citygml4j.core.model.core.AbstractFeature; -import de.hft.stuttgart.quality.marshaller.ZonedDateTimeAdapter; +import de.hft.stuttgart.quality.model.properties.StatisticsProperty; +import de.hft.stuttgart.quality.model.properties.ValidationPlanProperty; -@XmlType(name = "validation") -@XmlAccessorType(XmlAccessType.FIELD) -public class ValidationType { +public abstract class Validation extends AbstractFeature { - @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) - private ZonedDateTime validationDate; + @Serial + private static final long serialVersionUID = 7821104529898548535L; + private ZonedDateTime validationDate; private String validationSoftware; - - private ValidationPlan validationPlan; - - private Statistics statistics; - - public void setStatistics(Statistics statistics) { - this.statistics = statistics; - } - - public Statistics getStatistics() { - return statistics; - } - - public void setValidationPlan(ValidationPlan validationPlan) { - this.validationPlan = validationPlan; - } - - public ValidationPlan getValidationPlan() { - return validationPlan; - } + private StatisticsProperty statistics; + private ValidationPlanProperty validationPlan; public ZonedDateTime getValidationDate() { return validationDate; @@ -69,4 +49,20 @@ public class ValidationType { this.validationSoftware = validationSoftware; } + public StatisticsProperty getStatistics() { + return statistics; + } + + public void setStatistics(StatisticsProperty statistics) { + this.statistics = statistics; + } + + public ValidationPlanProperty getValidationPlan() { + return validationPlan; + } + + public void setValidationPlan(ValidationPlanProperty validationPlan) { + this.validationPlan = validationPlan; + } + } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java new file mode 100644 index 0000000..72225a9 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java @@ -0,0 +1,65 @@ +/*- + * 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.types; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +import org.xmlobjects.gml.model.GMLObject; + +import de.hft.stuttgart.quality.model.properties.FilterProperty; +import de.hft.stuttgart.quality.model.properties.GlobalParametersProperty; +import de.hft.stuttgart.quality.model.properties.RequirementProperty; + +public abstract class ValidationPlan extends GMLObject { + + @Serial + private static final long serialVersionUID = 434443226848485642L; + + private GlobalParametersProperty globalParameters; + private FilterProperty filter; + private List requirement; + + public GlobalParametersProperty getGlobalParameters() { + return globalParameters; + } + + public void setGlobalParameters(GlobalParametersProperty globalParameters) { + this.globalParameters = globalParameters; + } + + public FilterProperty getFilter() { + return filter; + } + + public void setFilter(FilterProperty filter) { + this.filter = filter; + } + + public List getRequirement() { + if (requirement == null) { + requirement = new ArrayList<>(); + } + return requirement; + } + + public void setRequirement(List requirement) { + this.requirement = requirement; + } + + +} 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 new file mode 100644 index 0000000..9b8eb6e --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java @@ -0,0 +1,64 @@ +/*- + * 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.types; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +import org.xmlobjects.gml.model.GMLObject; +import org.xmlobjects.gml.model.base.Reference; + +import de.hft.stuttgart.quality.model.enums.ResultType; +import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty; + +public abstract class ValidationResult extends GMLObject { + + @Serial + private static final long serialVersionUID = 4867627296196445082L; + + private Reference validationPlanID; + private List errors; + private ResultType resultType; + + public Reference getValidationPlanID() { + return validationPlanID; + } + + public void setValidationPlanID(Reference validationPlanID) { + this.validationPlanID = validationPlanID; + } + + public List getErrors() { + if (errors == null) { + errors = new ArrayList<>(); + } + return errors; + } + + public void setErrors(List errors) { + this.errors = errors; + } + + public ResultType getResultType() { + return resultType; + } + + public void setResultType(ResultType resultType) { + this.resultType = resultType; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/util/UncheckedMissingADESchemaException.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/util/UncheckedMissingADESchemaException.java index f710f93..f0a31ac 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/util/UncheckedMissingADESchemaException.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/util/UncheckedMissingADESchemaException.java @@ -15,7 +15,8 @@ */ package de.hft.stuttgart.quality.util; -import org.citygml4j.xml.io.reader.MissingADESchemaException; + +import org.citygml4j.xml.reader.MissingADESchemaException; public class UncheckedMissingADESchemaException extends RuntimeException { diff --git a/citygml4j-quality-ade/src/main/resources/qualityAde.xsd b/citygml4j-quality-ade/src/main/resources/qualityAde.xsd deleted file mode 100644 index 2ed1ec6..0000000 --- a/citygml4j-quality-ade/src/main/resources/qualityAde.xsd +++ /dev/null @@ -1,584 +0,0 @@ - - - - - - - - - - - - - Enumeration for status of check result - - - - - One or more errors were found - - - - - Feature was not checked - - - - - No errors were found - - - - - - - - - - - - - - - - - - - - - Consecutive point are the same - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - A planarity error with a point too far from the - regression plane - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Data structure containing validation results for - features - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Enumeration for available requirements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Requirement structure for configuration purposes - - - - - - - - - - - - Validation plan structure containing information about - the parameters used to perform the checks - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Statistics structure containing information about end - result of checking process - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Data structure containing the validation plan and - statistics of a validation process - - - - - - - - - - \ No newline at end of file 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 1eff286..62a4b87 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 @@ -1,5 +1,5 @@ /*- - * Copyright 2020 Hochschule für Technik Stuttgart + * 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. @@ -15,87 +15,56 @@ */ package de.hft.stuttgart.quality; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.util.List; -import java.util.ServiceLoader; - -import org.citygml4j.CityGMLContext; -import org.citygml4j.builder.jaxb.CityGMLBuilder; -import org.citygml4j.builder.jaxb.CityGMLBuilderException; -import org.citygml4j.model.citygml.ade.ADEComponent; -import org.citygml4j.model.citygml.ade.ADEException; -import org.citygml4j.model.citygml.ade.binding.ADEContext; -import org.citygml4j.model.citygml.building.Building; -import org.citygml4j.model.citygml.core.AbstractCityObject; -import org.citygml4j.model.citygml.core.CityModel; -import org.citygml4j.model.citygml.core.CityObjectMember; -import org.citygml4j.model.gml.geometry.primitives.DirectPosition; -import org.citygml4j.model.gml.measures.Angle; -import org.citygml4j.model.gml.measures.Length; -import org.citygml4j.model.module.citygml.CityGMLVersion; -import org.citygml4j.xml.io.CityGMLInputFactory; -import org.citygml4j.xml.io.CityGMLOutputFactory; -import org.citygml4j.xml.io.reader.CityGMLReadException; -import org.citygml4j.xml.io.reader.CityGMLReader; -import org.citygml4j.xml.io.reader.FeatureReadMode; -import org.citygml4j.xml.io.writer.CityGMLWriteException; -import org.citygml4j.xml.io.writer.CityGMLWriter; -import org.junit.jupiter.api.Test; - -import de.hft.stuttgart.quality.model.AllPolygonsWrongOrientation; -import de.hft.stuttgart.quality.model.AttributeMissing; -import de.hft.stuttgart.quality.model.AttributeWrongValue; -import de.hft.stuttgart.quality.model.ConsecutivePointsSame; -import de.hft.stuttgart.quality.model.Edge; -import de.hft.stuttgart.quality.model.HoleOutside; -import de.hft.stuttgart.quality.model.InnerRingsNested; -import de.hft.stuttgart.quality.model.InteriorDisconnected; -import de.hft.stuttgart.quality.model.IntersectingRings; -import de.hft.stuttgart.quality.model.MultipleConnectedComponents; -import de.hft.stuttgart.quality.model.NonManifoldEdge; -import de.hft.stuttgart.quality.model.NonManifoldVertex; -import de.hft.stuttgart.quality.model.NonPlanarDistancePlane; -import de.hft.stuttgart.quality.model.NonPlanarNormalsDeviation; -import de.hft.stuttgart.quality.model.OrientationRingsSame; -import de.hft.stuttgart.quality.model.PolygonWrongOrientation; -import de.hft.stuttgart.quality.model.RingNotClosed; -import de.hft.stuttgart.quality.model.RingSelfIntersection; -import de.hft.stuttgart.quality.model.SolidNotClosed; -import de.hft.stuttgart.quality.model.TooFewPoints; -import de.hft.stuttgart.quality.model.TooFewPolygons; -import de.hft.stuttgart.quality.model.Validation; -import de.hft.stuttgart.quality.model.ValidationError; -import de.hft.stuttgart.quality.model.ValidationResult; -import de.hft.stuttgart.quality.model.jaxb.Checking; -import de.hft.stuttgart.quality.model.jaxb.Component; -import de.hft.stuttgart.quality.model.jaxb.ErrorId; -import de.hft.stuttgart.quality.model.jaxb.ErrorStatistics; -import de.hft.stuttgart.quality.model.jaxb.FeatureStatistics; -import de.hft.stuttgart.quality.model.jaxb.Parameter; -import de.hft.stuttgart.quality.model.jaxb.Requirement; -import de.hft.stuttgart.quality.model.jaxb.RequirementId; -import de.hft.stuttgart.quality.model.jaxb.ResultType; -import de.hft.stuttgart.quality.model.jaxb.RingSelfIntType; -import de.hft.stuttgart.quality.model.jaxb.Statistics; -import de.hft.stuttgart.quality.model.jaxb.TopLevelFeatureType; -import de.hft.stuttgart.quality.model.jaxb.ValidationPlan; - class QualityAdeTests { + + /* + @Test + void testValidationPlan() throws ADEException, CityGMLContextException, CityGMLWriteException { + CityModel model = new CityModel(); + + Validation v = new Validation(); + model.getFeatureMembers().add(new AbstractFeatureProperty(v)); + v.setValidationSoftware("testSoftware"); + v.setValidationDate(ZonedDateTime.now()); + ValidationPlan plan = new ValidationPlan(); + Requirement req = new Requirement(); + req.setEnabled(true); + req.setName(RequirementId.R_GE_P_HOLE_OUTSIDE); + plan.getRequirements().add(req); + + Checking checking = new Checking(); + checking.setFeatureType(TopLevelFeatureType.BRIDGE); + plan.getFilter().add(checking); + + Parameter param = new Parameter(); + param.setName("test"); + param.setUom("uom"); + param.setValue("5"); + plan.getGlobalParameters().add(param); + + v.setValidationPlan(plan); + + + ADERegistry.getInstance().loadADE(new QualityADEContext()); + + CityGMLContext context = CityGMLContext.newInstance(); + CityGMLVersion version = CityGMLVersion.v2_0; + CityGMLOutputFactory out = context.createCityGMLOutputFactory(version); + + + try (CityGMLChunkWriter writer = out.createCityGMLChunkWriter(Paths.get("test.gml"), StandardCharsets.UTF_8.name())) { + writer.withIndent(" ") + .withSchemaLocation(QualityADEModule.NAMESPACE_URI, getClass().getResource("/qualityAde.xsd").toString()) + .withDefaultPrefixes() + .withDefaultNamespace(CoreModule.of(version).getNamespaceURI()) + .writeMember(v); + } + + } + + + @Test void testReadingConsecutiveSameError() throws ADEException, CityGMLBuilderException, CityGMLReadException, FileNotFoundException { @@ -557,7 +526,7 @@ class QualityAdeTests { assertEquals("_Simple_BD.1_PG.3", err.getComponents().get(1).getPolygonIds().get(0)); assertEquals("_Simple_BD.1_PG.4", err.getComponents().get(1).getPolygonIds().get(1)); } - + @Test void testWritingAttributeMissingError() throws ADEException, CityGMLBuilderException, CityGMLWriteException, CityGMLReadException { @@ -588,7 +557,7 @@ class QualityAdeTests { assertEquals(error.getChildId(), error2.getChildId()); assertEquals(error.isGeneric(), error2.isGeneric()); } - + @Test void testWritingAttributeWrongValueError() throws ADEException, CityGMLBuilderException, CityGMLWriteException, CityGMLReadException { @@ -1303,11 +1272,15 @@ class QualityAdeTests { System.out.println(event.getMessage()); throw new IllegalStateException(event.getLinkedException()); }); - CityModel cityModel; try (CityGMLReader reader = in.createCityGMLReader("?", input)) { - cityModel = (CityModel) reader.nextFeature(); + while (reader.hasNext()) { + CityGML nextFeature = reader.nextFeature(); + if (nextFeature instanceof CityModel) { + return (CityModel) nextFeature; + } + } } - return cityModel; + throw new IllegalStateException("No CityModel found in GML file"); } private CityModel readCityGml(File f) @@ -1399,11 +1372,11 @@ class QualityAdeTests { writer.setPrefixes(CityGMLVersion.DEFAULT); writer.setPrefix("qual", QualityADEModule.NAMESPACE_URI); writer.setSchemaLocation(QualityADEModule.NAMESPACE_URI, - QualityADEModule.NAMESPACE_URI + "/qualityAde.xsd"); + QualityADEModule.NAMESPACE_URI + "/qualityAdeOld.xsd"); writer.setSchemaLocations(CityGMLVersion.DEFAULT); writer.write(model); return out.toByteArray(); } - } + } */ } 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 3334930..26300b9 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml @@ -1,41 +1,43 @@  - + - + - - - _Simple_BD.1_PG.6_LR.1 - 11.5 10.0 4.5 - 11.5 10.0 4.5 - + + + + + + _Simple_BD.1_PG.6_LR.1 + 11.5 10.0 4.5 + 11.5 10.0 4.5 + + + OK + - - - - - - - + + + + + + + @@ -77,7 +79,8 @@ Lizenz: 11.5 15.0 4.5 13.0 15.0 3.0 13.0 15.0 0.0 - 10.0 15.0 0.0 + 10.0 + 15.0 0.0 @@ -124,7 +127,8 @@ Lizenz: 11.5 10.0 4.5 10.0 10.0 3.0 10.0 10.0 0.0 - 13.0 10.0 0.0 + 13.0 + 10.0 0.0 @@ -148,8 +152,9 @@ Lizenz: 11.5 10.0 4.5 11.5 15.0 4.5 10.0 15.0 3.0 - 10.0 10.0 3.0 - + 10.0 + 10.0 3.0 + @@ -199,59 +204,245 @@ Lizenz: - - 2002-05-30T09:00:00 - CityDoctor2 - - - 8 - 0.0001 - - - - - - - - - distance - 0.01 - 1 - 0.0000 - - - - - - - - - - - - - - - - - BUILDING - TRANSPORTATION - VEGETATION - BRIDGE - WATER - LAND - - - - 1 - 0 - 0 - 0 - 0 - 0 - - 1 - - - + + + 2002-05-30T09:00:00 + CityDoctor2 + + + + + 1 + 1 + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 1 + GE_R_CONSECUTIVE_POINTS_SAME + + + + + + + + + + + numberOfRoundingPlaces + 8 + + + + + minVertexDistance + m + 0.0001 + + + + + schematronFile + + + + + + + + + + BUILDING + + + + + TRANSPORTATION + + + + + VEGETATION + + + + + BRIDGE + + + + + WATER + + + + + LAND + + + + + + + true + R_GE_R_TOO_FEW_POINTS + + + + + true + R_GE_R_NOT_CLOSED + + + + + true + R_GE_R_CONSECUTIVE_POINTS_SAME + + + + + true + R_GE_R_SELF_INTERSECTION + + + + + true + R_GE_P_NON_PLANAR + + + type + distance + + + + + distanceTolerance + m + 0.01 + + + + + angleTolerance + deg + 1 + + + + + + + true + R_GE_P_INTERIOR_DISCONNECTED + + + + + true + R_GE_P_INTERSECTING_RINGS + + + + + true + R_GE_P_HOLE_OUTSIDE + + + + + true + R_GE_P_ORIENTATION_RINGS_SAME + + + + + true + R_GE_P_INNER_RINGS_NESTED + + + + + true + R_GE_S_TOO_FEW_POLYGONS + + + + + true + R_GE_S_NOT_CLOSED + + + + + true + R_GE_S_NON_MANIFOLD_EDGE + + + + + true + R_GE_S_POLYGON_WRONG_ORIENTATION + + + + + true + R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION + + + + + true + R_GE_S_NON_MANIFOLD_VERTEX + + + + + true + R_GE_S_SELF_INTERSECTION + + + + + true + R_GE_S_MULTIPLE_CONNECTED_COMPONENTS + + + + + + \ No newline at end of file diff --git a/citygml4j-quality-ade/test.gml b/citygml4j-quality-ade/test.gml new file mode 100644 index 0000000..9e3fd3e --- /dev/null +++ b/citygml4j-quality-ade/test.gml @@ -0,0 +1,18 @@ + + + + + 2022-03-29T12:31:57.2173659+02:00 + testSoftware + + + 5 + + + + BRIDGE + + + + + \ No newline at end of file -- GitLab