diff --git a/.gitignore b/.gitignore
index bccafffa77e2660ae029a1bd0b7202da6c69f1ad..8b4f9f0291beadfb206d34c1571ce6884d367d7b 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 0000000000000000000000000000000000000000..a2ca7a03ecc6d82159ead0f4ebbe153a08237050
--- /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 4c65c090ee5cdc7c243476c2c97a1108c03674f7..4e268329d6049368020c0fc924d9bb9d07de6e8c 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 f1e7d58cdf742678cc3a8ed408f4cbc331ef53a0..f7b70bafdee1cdcfd3fc884b474a5a17b5061716 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 9270a2539ecc1c8915c3513663a16c15822639a3..58d389b7ca2d5da3a12d71cf1dc4f88d266737f2 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 extends AbstractFeature> getFeatureClass(String name) {
- throw new IllegalStateException("No feature classes available");
- }
-
- @Override
- public QName getFeatureName(Class extends AbstractFeature> 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 a1b5a8e2faba36caba5ebc77e4c545f208573f2a..6c035a38f229166b4ed7bd88668405ea47c44a09 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 cd0528a760628127453cad9dc063bf21519bfec4..0000000000000000000000000000000000000000
--- 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