Commit a0ff9ed7 authored by Matthias Betz's avatar Matthias Betz
Browse files

Added check plugin system

parent 0a7d6299
Pipeline #1380 passed with stage
in 2 minutes and 13 seconds
......@@ -27,6 +27,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
......@@ -37,7 +38,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
* @author Matthias Betz
*
*/
public class PolygonHoleOutsideError extends CheckError {
public class PolygonHoleOutsideError implements CheckError {
private static final long serialVersionUID = -4522153084655775231L;
......@@ -45,7 +46,6 @@ public class PolygonHoleOutsideError extends CheckError {
private Polygon p;
public PolygonHoleOutsideError(Polygon p, List<LinearRing> holesOutside) {
super(ErrorId.GE_P_HOLE_OUTSIDE, ErrorType.ERROR, p);
this.p = p;
this.holesOutside = holesOutside;
}
......@@ -80,4 +80,19 @@ public class PolygonHoleOutsideError extends CheckError {
public String toString() {
return "HoleOutsideError [holesOutside=" + holesOutside + ", p=" + p + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_P_HOLE_OUTSIDE;
}
@Override
public GmlElement getFeature() {
return getPolygon();
}
}
......@@ -27,6 +27,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
......@@ -37,7 +38,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
* @author Matthias Betz
*
*/
public class PolygonInteriorDisconnectedError extends CheckError {
public class PolygonInteriorDisconnectedError implements CheckError {
private static final long serialVersionUID = 511849016699842395L;
......@@ -45,7 +46,6 @@ public class PolygonInteriorDisconnectedError extends CheckError {
private List<LinearRing> connectedRings;
public PolygonInteriorDisconnectedError(Polygon p, List<LinearRing> connectedRings) {
super(ErrorId.GE_P_INTERIOR_DISCONNECTED, ErrorType.ERROR, p);
this.p = p;
this.connectedRings = connectedRings;
}
......@@ -81,4 +81,19 @@ public class PolygonInteriorDisconnectedError extends CheckError {
public String toString() {
return "InteriorDisconnectedError [p=" + p + ", connectedRings=" + connectedRings + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_P_INTERIOR_DISCONNECTED;
}
@Override
public GmlElement getFeature() {
return getPolygon();
}
}
......@@ -25,6 +25,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.utils.SerializablePair;
......@@ -36,7 +37,7 @@ import de.hft.stuttgart.citydoctor2.utils.SerializablePair;
* @author Matthias Betz
*
*/
public class PolygonIntersectingRingsError extends CheckError {
public class PolygonIntersectingRingsError implements CheckError {
private static final long serialVersionUID = -7043521697085991901L;
......@@ -44,7 +45,6 @@ public class PolygonIntersectingRingsError extends CheckError {
private SerializablePair<LinearRing, LinearRing> intersectingRings;
public PolygonIntersectingRingsError(Polygon p, SerializablePair<LinearRing, LinearRing> intersectingRings) {
super(ErrorId.GE_P_INTERSECTING_RINGS, ErrorType.ERROR, p);
this.p = p;
this.intersectingRings = intersectingRings;
}
......@@ -78,4 +78,19 @@ public class PolygonIntersectingRingsError extends CheckError {
public String toString() {
return "PolygonSelfIntError [p=" + p + ", intersectingRings=" + intersectingRings + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_P_INTERSECTING_RINGS;
}
@Override
public GmlElement getFeature() {
return getPolygon();
}
}
......@@ -25,6 +25,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
......@@ -35,7 +36,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
* @author Matthias Betz
*
*/
public class PolygonSameOrientationError extends CheckError {
public class PolygonSameOrientationError implements CheckError {
private static final long serialVersionUID = -6192337889977667459L;
......@@ -43,7 +44,6 @@ public class PolygonSameOrientationError extends CheckError {
private LinearRing innerRing;
public PolygonSameOrientationError(Polygon p, LinearRing inner) {
super(ErrorId.GE_P_ORIENTATION_RINGS_SAME, ErrorType.ERROR, p);
this.p = p;
this.innerRing = inner;
}
......@@ -76,4 +76,19 @@ public class PolygonSameOrientationError extends CheckError {
public String toString() {
return "SameOrientationError [p=" + p + ", innerRing=" + innerRing + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_P_ORIENTATION_RINGS_SAME;
}
@Override
public GmlElement getFeature() {
return getPolygon();
}
}
......@@ -31,6 +31,7 @@ import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.Edge;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
/**
......@@ -41,7 +42,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
* @author Matthias Betz
*
*/
public class PolygonWrongOrientationError extends CheckError {
public class PolygonWrongOrientationError implements CheckError {
private static final long serialVersionUID = -3006643655816847097L;
......@@ -49,7 +50,6 @@ public class PolygonWrongOrientationError extends CheckError {
private Geometry g;
public PolygonWrongOrientationError(Geometry g, List<Edge> edges) {
super(ErrorId.GE_S_POLYGON_WRONG_ORIENTATION, ErrorType.ERROR, g);
this.edges = edges;
this.g = g;
}
......@@ -86,4 +86,19 @@ public class PolygonWrongOrientationError extends CheckError {
public String toString() {
return "PolygonWrongOrientationError [edges=" + edges + ", g=" + g + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_S_POLYGON_WRONG_ORIENTATION;
}
@Override
public GmlElement getFeature() {
return getGeometry();
}
}
......@@ -25,6 +25,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
......@@ -35,7 +36,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
* @author Matthias Betz
*
*/
public class RingDuplicatePointError extends CheckError {
public class RingDuplicatePointError implements CheckError {
private static final long serialVersionUID = 7208982075173209953L;
......@@ -44,7 +45,6 @@ public class RingDuplicatePointError extends CheckError {
private Vertex v2;
public RingDuplicatePointError(LinearRing r, Vertex v1, Vertex v2) {
super(ErrorId.GE_R_SELF_INTERSECTION, ErrorType.ERROR, r);
this.r = r;
this.v1 = v1;
this.v2 = v2;
......@@ -84,4 +84,19 @@ public class RingDuplicatePointError extends CheckError {
return "DuplicatePointError [r=" + r + ", v1=" + v1 + ", v2=" + v2 + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_R_SELF_INTERSECTION;
}
@Override
public GmlElement getFeature() {
return getRing();
}
}
......@@ -26,6 +26,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.Edge;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.math.Vector3d;
......@@ -36,7 +37,7 @@ import de.hft.stuttgart.citydoctor2.math.Vector3d;
* @author Matthias Betz
*
*/
public class RingEdgeIntersectionError extends CheckError {
public class RingEdgeIntersectionError implements CheckError {
private static final long serialVersionUID = 4923311259469198172L;
......@@ -46,7 +47,6 @@ public class RingEdgeIntersectionError extends CheckError {
private LinearRing lr;
public RingEdgeIntersectionError(LinearRing lr, Edge e1, Edge e2, Vector3d intersection) {
super(ErrorId.GE_R_SELF_INTERSECTION, ErrorType.ERROR, lr);
if (e1 == null || e2 == null || lr == null || intersection == null) {
throw new IllegalArgumentException("Parameters may not be null");
}
......@@ -96,4 +96,19 @@ public class RingEdgeIntersectionError extends CheckError {
return "EdgeIntersectionError [e1=" + e1 + ", e2=" + e2 + ", intersection=" + intersection + ", lr=" + lr + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_R_SELF_INTERSECTION;
}
@Override
public GmlElement getFeature() {
return getRing();
}
}
......@@ -25,6 +25,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
/**
......@@ -34,14 +35,13 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
* @author Matthias Betz
*
*/
public class RingNotClosedError extends CheckError {
public class RingNotClosedError implements CheckError {
private static final long serialVersionUID = 2554099996830579201L;
private LinearRing ring;
public RingNotClosedError(LinearRing ring) {
super(ErrorId.GE_R_NOT_CLOSED, ErrorType.ERROR, ring);
this.ring = ring;
}
......@@ -68,4 +68,19 @@ public class RingNotClosedError extends CheckError {
public String toString() {
return "RingNotClosedError [ring=" + ring + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_R_NOT_CLOSED;
}
@Override
public GmlElement getFeature() {
return getRing();
}
}
......@@ -25,6 +25,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
/**
......@@ -33,14 +34,13 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
* @author Matthias Betz
*
*/
public class RingTooFewPointsError extends CheckError {
public class RingTooFewPointsError implements CheckError {
private static final long serialVersionUID = 7207518573842743261L;
private LinearRing lr;
public RingTooFewPointsError(LinearRing lr) {
super(ErrorId.GE_R_TOO_FEW_POINTS, ErrorType.ERROR, lr);
this.lr = lr;
}
......@@ -67,4 +67,19 @@ public class RingTooFewPointsError extends CheckError {
public String toString() {
return "TooFewPointsError [lr=" + lr + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_R_TOO_FEW_POINTS;
}
@Override
public GmlElement getFeature() {
return getRing();
}
}
......@@ -25,15 +25,15 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
public class SchematronError extends CheckError {
public class SchematronError implements CheckError {
private static final long serialVersionUID = -2964084500589868928L;
private String text;
public SchematronError(String text) {
super(ErrorId.SEM_SCHEMATRON_ERROR, ErrorType.ERROR, null);
this.text = text;
}
......@@ -61,4 +61,19 @@ public class SchematronError extends CheckError {
return text;
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.SEM_SCHEMATRON_ERROR;
}
@Override
public GmlElement getFeature() {
return null;
}
}
......@@ -29,6 +29,7 @@ import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.Edge;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
/**
* If a geometry has holes in it, it results in edges being traversed only once.
......@@ -37,7 +38,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
* @author Matthias Betz
*
*/
public class SolidNotClosedError extends CheckError {
public class SolidNotClosedError implements CheckError {
private static final long serialVersionUID = 8256385219885788891L;
......@@ -45,7 +46,6 @@ public class SolidNotClosedError extends CheckError {
private Geometry g;
public SolidNotClosedError(Geometry g, List<Edge> errorEdges) {
super(ErrorId.GE_S_NOT_CLOSED, ErrorType.ERROR, g);
this.errorEdges = errorEdges;
this.g = g;
}
......@@ -78,4 +78,19 @@ public class SolidNotClosedError extends CheckError {
public String toString() {
return "SolidNotClosedError [errorEdges=" + errorEdges + ", g=" + g + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_S_NOT_CLOSED;
}
@Override
public GmlElement getFeature() {
return getGeometry();
}
}
......@@ -28,6 +28,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.utils.PolygonIntersection;
/**
......@@ -36,7 +37,7 @@ import de.hft.stuttgart.citydoctor2.utils.PolygonIntersection;
* @author Matthias Betz
*
*/
public class SolidSelfIntError extends CheckError {
public class SolidSelfIntError implements CheckError {
private static final long serialVersionUID = -4479936555545861422L;
......@@ -45,7 +46,6 @@ public class SolidSelfIntError extends CheckError {
private List<PolygonIntersection> intersections;
public SolidSelfIntError(Geometry g, List<PolygonIntersection> intersections) {
super(ErrorId.GE_S_SELF_INTERSECTION, ErrorType.ERROR, g);
this.g = g;
this.intersections = intersections;
}
......@@ -77,4 +77,19 @@ public class SolidSelfIntError extends CheckError {
public String toString() {
return "SolidSelfIntError [g=" + g + ", intersection=" + intersections + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_S_SELF_INTERSECTION;
}
@Override
public GmlElement getFeature() {
return getGeometry();
}
}
......@@ -26,6 +26,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
/**
* Container object for an unfragmented error
......@@ -33,7 +34,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
* @author Matthias Betz
*
*/
public class SurfaceUnfragmentedError extends CheckError {
public class SurfaceUnfragmentedError implements CheckError {
private static final long serialVersionUID = 3146243879393474196L;
......@@ -41,7 +42,6 @@ public class SurfaceUnfragmentedError extends CheckError {
private double angleDeviation;
public SurfaceUnfragmentedError(BoundarySurface bs, double angleDerivation) {
super(ErrorId.SEM_BS_UNFRAGMENTED, ErrorType.ERROR, bs);
this.bs = bs;
this.angleDeviation = angleDerivation;
}
......@@ -70,4 +70,19 @@ public class SurfaceUnfragmentedError extends CheckError {
report.add("angleDerivation", angleDeviation);
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.SEM_BS_UNFRAGMENTED;
}
@Override
public GmlElement getFeature() {
return getBoundarySurface();
}
}
......@@ -25,21 +25,21 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
public class TinyEdgeError extends CheckError {
public class TinyEdgeError implements CheckError {
/**
*
*/
private static final long serialVersionUID = 865493182529055651L;
private Polygon p;
public TinyEdgeError(Polygon p) {
super(ErrorId.GE_P_TINY_EDGE, ErrorType.ERROR, p);
this.p = p;
}
public Polygon getPolygon() {
return (Polygon) getFeature();
return p;
}
@Override
......@@ -56,5 +56,20 @@ public class TinyEdgeError extends CheckError {
public void report(ErrorReport report) {
report.add(getPolygon());
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_P_TINY_EDGE;
}
@Override
public GmlElement getFeature() {
return getPolygon();
}
}
......@@ -26,6 +26,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
/**
* When a geometry has less than 4 polygons, it cannot form a valid solid.
......@@ -33,14 +34,13 @@ import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
* @author Matthias Betz
*
*/
public class TooFewPolygonsError extends CheckError {
public class TooFewPolygonsError implements CheckError {
private static final long serialVersionUID = 5800732409355221678L;
private Geometry g;
public TooFewPolygonsError(Geometry g) {
super(ErrorId.GE_S_TOO_FEW_POLYGONS, ErrorType.ERROR, g);
this.g = g;
}
......@@ -68,4 +68,19 @@ public class TooFewPolygonsError extends CheckError {
public String toString() {
return "TooFewPolygonsError [g=" + g + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.GE_S_TOO_FEW_POLYGONS;
}
@Override
public GmlElement getFeature() {
return getGeometry();
}
}
......@@ -28,6 +28,7 @@ import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.ErrorVisitor;
import de.hft.stuttgart.citydoctor2.check.HealingMethod;
import de.hft.stuttgart.citydoctor2.check.ModificationListener;
import de.hft.stuttgart.citydoctor2.datastructure.GmlElement;
/**
* This error is created when an unexpected exception is thrown by the code.
......@@ -35,7 +36,7 @@ import de.hft.stuttgart.citydoctor2.check.ModificationListener;
* @author Matthias Betz
*
*/
public class UnknownCheckError extends CheckError {
public class UnknownCheckError implements CheckError {
private static final long serialVersionUID = -6554097632341055596L;
......@@ -44,7 +45,6 @@ public class UnknownCheckError extends CheckError {
private CheckId checkId;
public UnknownCheckError(Checkable c, Exception e, Check check) {
super(ErrorId.UNKNOWN_ERROR, ErrorType.ERROR, null);
this.c = c;
this.e = e;
checkId = check.getCheckId();
......@@ -83,4 +83,19 @@ public class UnknownCheckError extends CheckError {
public String toString() {
return "UnknownCheckError [c=" + c + ", e=" + e + "]";
}
@Override
public ErrorType getType() {
return ErrorType.ERROR;
}
@Override
public ErrorId getErrorId() {
return ErrorId.UNKNOWN_ERROR;
}
@Override
public GmlElement getFeature() {
return null;
}
}
......@@ -73,6 +73,9 @@ public class Vertex extends Vector3d {
}
public Set<LinearRing> getAdjacentRings(Geometry geom) {
if (adjacentRings == null) {
return Collections.emptySet();
}
for (SerializablePair<Geometry, HashSet<LinearRing>> adjacency : adjacentRings) {
if (adjacency.getValue0() == geom) {
if (neighbors == null || neighbors.isEmpty()) {
......@@ -91,6 +94,9 @@ public class Vertex extends Vector3d {
}
void addAdjacentRing(LinearRing ring, Geometry geom) {
if (adjacentRings == null) {
adjacentRings = new ArrayList<>(2);
}
findAdjacentRingsForGeometry(geom).add(ring);
}
......@@ -122,6 +128,9 @@ public class Vertex extends Vector3d {
}
public Set<Polygon> getAdjacentPolygons(Geometry geom) {
if (adjacentRings == null) {
return Collections.emptySet();
}
for (SerializablePair<Geometry, HashSet<LinearRing>> adjecency : adjacentRings) {
if (adjecency.getValue0() == geom) {
Set<Polygon> polygons = new HashSet<>();
......@@ -163,6 +172,9 @@ public class Vertex extends Vector3d {
}
public void clearAdjacentRings(Geometry geometry) {
if (adjacentRings == null) {
return;
}
findAdjacentRingsForGeometry(geometry).clear();
}
......@@ -202,6 +214,6 @@ public class Vertex extends Vector3d {
* Remove all adjacent rings from this vertex, ignoring geometry association
*/
void clearAdjacentRings() {
adjacentRings = new ArrayList<>(2);
adjacentRings = null;
}
}
......@@ -19,7 +19,6 @@
<groupId>de.hft.stuttgart</groupId>
<artifactId>CityDoctorCheckResult</artifactId>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
......@@ -67,17 +66,6 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>libs/</classpathPrefix>
<mainClass>
de.hft.stuttgart.citydoctor2.CityDoctorValidation
</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
......
java -jar ${project.artifactId}-${project.version}.jar -in REKaiserwall.gml -config testConfigWithStreaming.yml -xmlReport output.xml
java -classpath libs/*;plugins/*;${project.artifactId}-${project.version}.jar de.hft.stuttgart.citydoctor2.CityDoctorValidation -in REKaiserwall.gml -config testConfigWithStreaming.yml -xmlReport output.xml
pause
\ No newline at end of file
......@@ -26,7 +26,6 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
......@@ -82,7 +81,7 @@ public class ValidationConfiguration implements Serializable {
public static ValidationConfiguration loadStandardValidationConfig() {
ValidationConfiguration config = new ValidationConfiguration();
config.checks = new EnumMap<>(CheckId.class);
config.checks = new HashMap<>();
for (CheckPrototype c : Checks.getCheckPrototypes()) {
CheckConfiguration cConfig = new CheckConfiguration();
cConfig.setEnabled(true);
......@@ -144,7 +143,7 @@ public class ValidationConfiguration implements Serializable {
public Map<CheckId, CheckConfiguration> getChecks() {
if (checks == null) {
checks = new EnumMap<>(CheckId.class);
checks = new HashMap<>();
}
return checks;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment