Commit 1745865f authored by Riegel's avatar Riegel
Browse files

Code cleaning Ref #69

parent 5a6f4b46
......@@ -18,6 +18,8 @@
*/
package de.hft.stuttgart.citydoctor2.parser;
import java.io.Serial;
/**
* Used when an invalid CityGML file is found.
*
......@@ -26,6 +28,7 @@ package de.hft.stuttgart.citydoctor2.parser;
*/
public class InvalidGmlFileException extends Exception {
@Serial
private static final long serialVersionUID = 5490585939707730933L;
public InvalidGmlFileException() {
......
......@@ -37,10 +37,10 @@ import java.util.ArrayList;
public class ObservedInputStream extends FilterInputStream {
/** List of registered progress listeners. */
private ArrayList<InputStreamListener> listeners = new ArrayList<>();
private final ArrayList<InputStreamListener> listeners = new ArrayList<>();
/** The number of bytes of the file to be read. */
private long fileLength;
private final long fileLength;
/** The number of bytes read so far. */
private long location;
......
......@@ -18,6 +18,7 @@
*/
package de.hft.stuttgart.citydoctor2.parser;
import java.io.Serial;
import java.io.Serializable;
import org.locationtech.proj4j.BasicCoordinateTransform;
......@@ -33,6 +34,7 @@ import org.locationtech.proj4j.CoordinateReferenceSystem;
*/
public class ParserConfiguration implements Serializable {
@Serial
private static final long serialVersionUID = 6209047092991074661L;
private static final CRSFactory CRS_FACTORY = new CRSFactory();
......
......@@ -18,6 +18,7 @@
*/
package de.hft.stuttgart.citydoctor2.tesselation;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
......@@ -35,10 +36,11 @@ import de.hft.stuttgart.citydoctor2.math.Vector3d;
*/
public class TesselatedPolygon implements Serializable {
@Serial
private static final long serialVersionUID = 3117655580899570369L;
private List<Triangle3d> triangles;
private Polygon original;
private final List<Triangle3d> triangles;
private final Polygon original;
public TesselatedPolygon(List<Triangle3d> triangles, Polygon original) {
this.triangles = triangles;
......@@ -54,7 +56,7 @@ public class TesselatedPolygon implements Serializable {
}
triangles = new ArrayList<>();
for (int i = 0; i < indices.size(); i = i + 3) {
Vector3d v1 = vertices.get(indices.get(i + 0));
Vector3d v1 = vertices.get(indices.get(i));
Vector3d v2 = vertices.get(indices.get(i + 1));
Vector3d v3 = vertices.get(indices.get(i + 2));
triangles.add(new Triangle3d(v1, v2, v3, this));
......
......@@ -34,8 +34,8 @@ import de.hft.stuttgart.citydoctor2.math.Vector3d;
*/
public class TesselatedRing {
private List<Triangle3d> triangles;
private LinearRing ring;
private final List<Triangle3d> triangles;
private final LinearRing ring;
public TesselatedRing(List<Triangle3d> triangles, LinearRing ring) {
this.ring = ring;
......@@ -48,7 +48,7 @@ public class TesselatedRing {
}
triangles = new ArrayList<>();
for (int i = 0; i < indices.size(); i = i + 3) {
Vector3d v1 = vertices.get(indices.get(i + 0));
Vector3d v1 = vertices.get(indices.get(i));
Vector3d v2 = vertices.get(indices.get(i + 1));
Vector3d v3 = vertices.get(indices.get(i + 2));
triangles.add(new Triangle3d(v1, v2, v3));
......
......@@ -18,6 +18,8 @@
*/
package de.hft.stuttgart.citydoctor2.tesselation;
import java.io.Serial;
/**
* Thrown when something went wrong with the tesselation process.
*
......@@ -43,6 +45,7 @@ public class TesselationException extends RuntimeException {
super(cause);
}
@Serial
private static final long serialVersionUID = -2010522579830781136L;
public TesselationException(String message) {
......
......@@ -29,8 +29,8 @@ import java.util.Set;
public class CopyHandler {
private Set<Copyable> toBeDoneInstances = new HashSet<>();
private Map<Copyable, Copyable> finishedInstances = new IdentityHashMap<>();
private final Set<Copyable> toBeDoneInstances = new HashSet<>();
private final Map<Copyable, Copyable> finishedInstances = new IdentityHashMap<>();
@SuppressWarnings("unchecked")
public <T extends Copyable> T copy(T original) {
......
......@@ -30,7 +30,7 @@ public class Localization {
public static final String VERSION = "CityDoctorValidation.Version";
private static ResourceBundle bundle;
private static final ResourceBundle bundle;
static {
bundle = ResourceBundle.getBundle("CityDoctorLocalization");
......
......@@ -28,8 +28,8 @@ package de.hft.stuttgart.citydoctor2.utils;
*/
public class Pair<A, B> {
private A a;
private B b;
private final A a;
private final B b;
public Pair(A a, B b) {
this.a = a;
......@@ -78,14 +78,9 @@ public class Pair<A, B> {
return false;
}
if (b == null) {
if (other.b != null) {
return false;
}
} else if (!b.equals(other.b)) {
return false;
}
return true;
}
return other.b == null;
} else return b.equals(other.b);
}
@Override
public String toString() {
......
......@@ -18,6 +18,7 @@
*/
package de.hft.stuttgart.citydoctor2.utils;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
......@@ -33,13 +34,14 @@ import de.hft.stuttgart.citydoctor2.math.Segment3d;
*/
public class PolygonIntersection implements Serializable {
@Serial
private static final long serialVersionUID = -6301963226688351725L;
public enum IntersectionType {
NONE, LINE, POLYGON
}
private IntersectionType type;
private final IntersectionType type;
private List<Segment3d> lines;
private ConcretePolygon polygon;
......
......@@ -85,54 +85,39 @@ public class QualityADEUtils {
}
public static de.hft.stuttgart.quality.model.enums.ErrorId mapErrorIdToAdeId(ErrorId key) {
switch (key.getIdString()) {
case "GE_R_NOT_CLOSED":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_R_NOT_CLOSED;
case "GE_R_TOO_FEW_POINTS":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_R_TOO_FEW_POINTS;
case "GE_R_CONSECUTIVE_POINTS_SAME":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_R_CONSECUTIVE_POINTS_SAME;
case "GE_R_SELF_INTERSECTION":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_R_SELF_INTERSECTION;
case "GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION;
case "GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE;
case "GE_P_INTERIOR_DISCONNECTED":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_INTERIOR_DISCONNECTED;
case "GE_P_INTERSECTING_RINGS":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_INTERSECTING_RINGS;
case "GE_P_HOLE_OUTSIDE":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_HOLE_OUTSIDE;
case "GE_P_ORIENTATION_RINGS_SAME":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_ORIENTATION_RINGS_SAME;
case "GE_P_INNER_RINGS_NESTED":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_INNER_RINGS_NESTED;
case "GE_S_TOO_FEW_POLYGONS":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_TOO_FEW_POLYGONS;
case "GE_S_NOT_CLOSED":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_NOT_CLOSED;
case "GE_S_NON_MANIFOLD_EDGE":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_NON_MANIFOLD_EDGE;
case "GE_S_POLYGON_WRONG_ORIENTATION":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_POLYGON_WRONG_ORIENTATION;
case "GE_S_ALL_POLYGONS_WRONG_ORIENTATION":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_ALL_POLYGONS_WRONG_ORIENTATION;
case "GE_S_NON_MANIFOLD_VERTEX":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_NON_MANIFOLD_VERTEX;
case "GE_S_SELF_INTERSECTION":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_SELF_INTERSECTION;
case "GE_S_MULTIPLE_CONNECTED_COMPONENTS":
return de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_MULTIPLE_CONNECTED_COMPONENTS;
case "SE_ATTRIBUTE_WRONG_VALUE":
return de.hft.stuttgart.quality.model.enums.ErrorId.SE_ATTRIBUTE_WRONG_VALUE;
case "SE_ATTRIBUTE_MISSING":
return de.hft.stuttgart.quality.model.enums.ErrorId.SE_ATTRIBUTE_MISSING;
case "SE_ATTRIBUTE_INVALID":
return de.hft.stuttgart.quality.model.enums.ErrorId.SE_ATTRIBUTE_INVALID;
default:
return null;
}
return switch (key.getIdString()) {
case "GE_R_NOT_CLOSED" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_R_NOT_CLOSED;
case "GE_R_TOO_FEW_POINTS" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_R_TOO_FEW_POINTS;
case "GE_R_CONSECUTIVE_POINTS_SAME" ->
de.hft.stuttgart.quality.model.enums.ErrorId.GE_R_CONSECUTIVE_POINTS_SAME;
case "GE_R_SELF_INTERSECTION" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_R_SELF_INTERSECTION;
case "GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION" ->
de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION;
case "GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE" ->
de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE;
case "GE_P_INTERIOR_DISCONNECTED" ->
de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_INTERIOR_DISCONNECTED;
case "GE_P_INTERSECTING_RINGS" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_INTERSECTING_RINGS;
case "GE_P_HOLE_OUTSIDE" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_HOLE_OUTSIDE;
case "GE_P_ORIENTATION_RINGS_SAME" ->
de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_ORIENTATION_RINGS_SAME;
case "GE_P_INNER_RINGS_NESTED" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_P_INNER_RINGS_NESTED;
case "GE_S_TOO_FEW_POLYGONS" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_TOO_FEW_POLYGONS;
case "GE_S_NOT_CLOSED" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_NOT_CLOSED;
case "GE_S_NON_MANIFOLD_EDGE" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_NON_MANIFOLD_EDGE;
case "GE_S_POLYGON_WRONG_ORIENTATION" ->
de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_POLYGON_WRONG_ORIENTATION;
case "GE_S_ALL_POLYGONS_WRONG_ORIENTATION" ->
de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_ALL_POLYGONS_WRONG_ORIENTATION;
case "GE_S_NON_MANIFOLD_VERTEX" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_NON_MANIFOLD_VERTEX;
case "GE_S_SELF_INTERSECTION" -> de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_SELF_INTERSECTION;
case "GE_S_MULTIPLE_CONNECTED_COMPONENTS" ->
de.hft.stuttgart.quality.model.enums.ErrorId.GE_S_MULTIPLE_CONNECTED_COMPONENTS;
case "SE_ATTRIBUTE_WRONG_VALUE" -> de.hft.stuttgart.quality.model.enums.ErrorId.SE_ATTRIBUTE_WRONG_VALUE;
case "SE_ATTRIBUTE_MISSING" -> de.hft.stuttgart.quality.model.enums.ErrorId.SE_ATTRIBUTE_MISSING;
case "SE_ATTRIBUTE_INVALID" -> de.hft.stuttgart.quality.model.enums.ErrorId.SE_ATTRIBUTE_INVALID;
default -> null;
};
}
}
......@@ -18,6 +18,7 @@
*/
package de.hft.stuttgart.citydoctor2.utils;
import java.io.Serial;
import java.io.Serializable;
/**
......@@ -30,10 +31,11 @@ import java.io.Serializable;
*/
public class SerializablePair<A extends Serializable, B extends Serializable> implements Serializable {
@Serial
private static final long serialVersionUID = -5307944001963352647L;
private A a;
private B b;
private final A a;
private final B b;
public SerializablePair(A a, B b) {
this.a = a;
......@@ -82,14 +84,9 @@ public class SerializablePair<A extends Serializable, B extends Serializable> im
return false;
}
if (b == null) {
if (other.b != null) {
return false;
}
} else if (!b.equals(other.b)) {
return false;
}
return true;
}
return other.b == null;
} else return b.equals(other.b);
}
@Override
public String toString() {
......
......@@ -105,8 +105,8 @@ public class Checker {
private List<Filter> includeFilters;
private List<Filter> excludeFilters;
private Checks checkConfig;
private CityDoctorModel model;
private final Checks checkConfig;
private final CityDoctorModel model;
public Checker(CityDoctorModel model) {
this(ValidationConfiguration.loadStandardValidationConfig(), model);
......@@ -316,9 +316,8 @@ public class Checker {
handleInputFilter(filter);
if (excludeFilters != null) {
for (Filter f : excludeFilters) {
if (f instanceof TypeFilter) {
TypeFilter tf = (TypeFilter) f;
FeatureType type = tf.getType();
if (f instanceof TypeFilter tf) {
FeatureType type = tf.type();
TopLevelFeatureType tlft = mapToTopLevelFeatureType(type);
if (tlft == null) {
continue;
......@@ -337,7 +336,7 @@ public class Checker {
} else {
for (Filter f : includeFilters) {
if (f instanceof TypeFilter tf) {
FeatureType type = tf.getType();
FeatureType type = tf.type();
TopLevelFeatureType tlft = mapToTopLevelFeatureType(type);
if (tlft == null) {
continue;
......@@ -392,22 +391,15 @@ public class Checker {
}
private TopLevelFeatureType mapToTopLevelFeatureType(FeatureType type) {
switch (type) {
case BRIDGE:
return TopLevelFeatureType.BRIDGE;
case BUILDING:
return TopLevelFeatureType.BUILDING;
case LAND:
return TopLevelFeatureType.LAND;
case TRANSPORTATION:
return TopLevelFeatureType.TRANSPORTATION;
case VEGETATION:
return TopLevelFeatureType.VEGETATION;
case WATER:
return TopLevelFeatureType.WATER;
default:
return null;
}
return switch (type) {
case BRIDGE -> TopLevelFeatureType.BRIDGE;
case BUILDING -> TopLevelFeatureType.BUILDING;
case LAND -> TopLevelFeatureType.LAND;
case TRANSPORTATION -> TopLevelFeatureType.TRANSPORTATION;
case VEGETATION -> TopLevelFeatureType.VEGETATION;
case WATER -> TopLevelFeatureType.WATER;
default -> null;
};
}
private RequirementId mapToRequirement(String requirementName) {
......@@ -446,7 +438,7 @@ public class Checker {
transformerFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
transformerFactory.setURIResolver(new URIResolver() {
@Override
public Source resolve(String href, String base) throws TransformerException {
return new StreamSource(Checker.class.getResourceAsStream(href));
......@@ -706,14 +698,14 @@ public class Checker {
if (logger.isDebugEnabled()) {
logger.debug(Localization.getText("Checker.checkFeature"), co);
}
for (int i = 0; i < execLayers.size(); i++) {
for (Check check : execLayers.get(i)) {
if (logger.isTraceEnabled()) {
logger.trace(Localization.getText("Checker.executeCheck"), check.getCheckId());
}
co.accept(check);
}
}
for (List<Check> execLayer : execLayers) {
for (Check check : execLayer) {
if (logger.isTraceEnabled()) {
logger.trace(Localization.getText("Checker.executeCheck"), check.getCheckId());
}
co.accept(check);
}
}
}
public static List<List<Check>> buildExecutionLayers(List<Check> checks) {
......
......@@ -30,7 +30,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
*/
public class EqualsIgnoreCaseFilter implements Filter {
private String id;
private final String id;
public EqualsIgnoreCaseFilter(String id) {
Objects.requireNonNull(id);
......
......@@ -18,6 +18,7 @@
*/
package de.hft.stuttgart.citydoctor2.check;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
......@@ -26,6 +27,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.FeatureType;
public class ExcludeFilterConfiguration implements Serializable {
@Serial
private static final long serialVersionUID = 5308380997654048837L;
private List<FeatureType> types;
......
......@@ -18,6 +18,7 @@
*/
package de.hft.stuttgart.citydoctor2.check;
import java.io.Serial;
import java.io.Serializable;
/**
......@@ -29,6 +30,7 @@ import java.io.Serializable;
*/
public class FilterConfiguration implements Serializable {
@Serial
private static final long serialVersionUID = 3344890310114546998L;
private ExcludeFilterConfiguration exclude;
......
......@@ -18,6 +18,7 @@
*/
package de.hft.stuttgart.citydoctor2.check;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
......@@ -34,6 +35,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.FeatureType;
*/
public class IncludeFilterConfiguration implements Serializable {
@Serial
private static final long serialVersionUID = 1840264505629236113L;
private List<FeatureType> types;
......
......@@ -24,7 +24,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
public class PatternFilter implements Filter {
private Pattern pattern;
private final Pattern pattern;
public PatternFilter(String patternString) {
pattern = Pattern.compile(patternString);
......
......@@ -18,6 +18,7 @@
*/
package de.hft.stuttgart.citydoctor2.check;
import java.io.Serial;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
......@@ -31,6 +32,7 @@ import java.util.Map;
*/
public class RequirementConfiguration implements Serializable {
@Serial
private static final long serialVersionUID = -1258195428669813888L;
private boolean enabled;
......
......@@ -63,22 +63,22 @@ public class StreamCityGmlConsumer implements CityGmlConsumer {
private static final Logger logger = LogManager.getLogger(StreamCityGmlConsumer.class);
private Checker c;
private XmlStreamReporter xmlReporter;
private PdfStreamReporter pdfReporter;
private SvrlContentHandler handler;
private Map<ErrorId, AtomicInteger> errorCount;
private GeometryFactory gmlFactory;
private ValidationConfiguration config;
private Statistics statistics;
private FeatureStatistics buildingStatistics;
private FeatureStatistics bridgeStatistics;
private FeatureStatistics transportationStatistics;
private FeatureStatistics vegetationStatistics;
private FeatureStatistics landStatistics;
private FeatureStatistics waterStatistics;
private Validation val;
private FeatureCheckedListener l;
private final Checker c;
private final XmlStreamReporter xmlReporter;
private final PdfStreamReporter pdfReporter;
private final SvrlContentHandler handler;
private final Map<ErrorId, AtomicInteger> errorCount;
private final GeometryFactory gmlFactory;
private final ValidationConfiguration config;
private final Statistics statistics;
private final FeatureStatistics buildingStatistics;
private final FeatureStatistics bridgeStatistics;
private final FeatureStatistics transportationStatistics;
private final FeatureStatistics vegetationStatistics;
private final FeatureStatistics landStatistics;
private final FeatureStatistics waterStatistics;
private final Validation val;
private final FeatureCheckedListener l;
public StreamCityGmlConsumer(Checker c, XmlStreamReporter xmlReporter, PdfStreamReporter pdfReporter,
SvrlContentHandler handler, ValidationConfiguration config, FeatureCheckedListener l) {
......
Supports Markdown
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