Commit b50c5f13 authored by Riegel's avatar Riegel
Browse files

Merge branch 'dev_visitor_rework' into 'dev'

Cleanup Visitor implementation

See merge request !33
parents e0e40fdd bc6e1817
Pipeline #11128 passed with stage
in 1 minute and 25 seconds
/*-
* Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart
*
* This file is part of CityDoctor2.
*
* CityDoctor2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* CityDoctor2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
*/
package de.hft.stuttgart.citydoctor2.check;
import java.util.Collections;
import java.util.Set;
/**
*
* This class serves as a Parent for non-validating checks that want to use the CheckEngine's Visitor-pattern for the
* implementation of utility functions like e.g. collecting the sub-CityObjects in a Feature.
*
*
* @author Matthias Betz
*
*/
public abstract class AbstractCheck extends Check {
@Override
public Set<Requirement> appliesToRequirements() {
return Collections.emptySet();
}
@Override
public CheckId getCheckId() {
return null;
}
@Override
public RequirementType getType() {
return null;
}
@Override
public Check createNewInstance() {
return null;
}
@Override
public final boolean isValidator() {
return false;
}
}
...@@ -49,7 +49,7 @@ import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; ...@@ -49,7 +49,7 @@ import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
* @author Matthias Betz * @author Matthias Betz
* *
*/ */
public abstract class Check { public abstract non-sealed class Check implements CheckableVisitor {
private final List<Class<Checkable>> applicableToClasses = new ArrayList<>(2); private final List<Class<Checkable>> applicableToClasses = new ArrayList<>(2);
...@@ -67,11 +67,6 @@ public abstract class Check { ...@@ -67,11 +67,6 @@ public abstract class Check {
} }
} }
/**
* Returns all classes for which the check needs to be executed
*
* @return a list of classes which the check applies to
*/
public List<Class<Checkable>> getApplicableToClasses() { public List<Class<Checkable>> getApplicableToClasses() {
return applicableToClasses; return applicableToClasses;
} }
...@@ -108,22 +103,21 @@ public abstract class Check { ...@@ -108,22 +103,21 @@ public abstract class Check {
* *
* @return true if it validates, false otherwise * @return true if it validates, false otherwise
*/ */
@Override
public boolean isValidator() { public boolean isValidator() {
return true; return true;
} }
/** /**
* Checks whether the check can be executed on this checkable, meaning the * Checks whether this Check can execute on the Checkable, meaning the Checkable contains no error from
* checkable or its content can not have any error of any check dependent on * this Check's dependencies and is applicable to this Check. <br/>
* this check. <br> * If the check cannot be executed due to not fulfilling the dependencies a CheckResult will be created with the
* If the check cannot be executed a CheckResult will be created with the
* ResultStatus = DEPENDENCIES_NOT_MET. * ResultStatus = DEPENDENCIES_NOT_MET.
* *
* @param c the checkable * @param c the checkable
* @param crc container for all check results * @return true if the check can be executed, false otherwise
* @return true if the check can be executed, false if the checkable itself or
* one of its containing checkables have an error.
*/ */
@Override
public boolean canExecute(Checkable c) { public boolean canExecute(Checkable c) {
// ignore objects where this check doesn't apply to // ignore objects where this check doesn't apply to
if (!canBeApplied(c)) { if (!canBeApplied(c)) {
......
...@@ -26,7 +26,7 @@ import java.util.Map; ...@@ -26,7 +26,7 @@ import java.util.Map;
import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound; import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound;
import de.hft.stuttgart.citydoctor2.utils.visitors.CheckableErrorCollector; import de.hft.stuttgart.citydoctor2.utils.visitors.CheckableErrorCollector;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearCheckResultsVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.ClearVisitorResultsVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearMetaInformationVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.ClearMetaInformationVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.ContainsAnyErrorVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.ContainsAnyErrorVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.ContainsErrorVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.ContainsErrorVisitor;
...@@ -74,7 +74,7 @@ public abstract class Checkable implements Serializable { ...@@ -74,7 +74,7 @@ public abstract class Checkable implements Serializable {
* @param c the check from which the check method is called with the Checkable * @param c the check from which the check method is called with the Checkable
* instance as parameter. * instance as parameter.
*/ */
public void accept(Check c) { public void accept(CheckableVisitor c) {
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
} }
...@@ -232,7 +232,7 @@ public abstract class Checkable implements Serializable { ...@@ -232,7 +232,7 @@ public abstract class Checkable implements Serializable {
* Clears the checkResults list of this checkable and all child objects in its datastructure. * Clears the checkResults list of this checkable and all child objects in its datastructure.
*/ */
public final void clearAllContainedCheckResults() { public final void clearAllContainedCheckResults() {
this.accept(new ClearCheckResultsVisitor()); this.accept(new ClearVisitorResultsVisitor());
} }
/** /**
......
/*-
* Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart
*
* This file is part of CityDoctor2.
*
* CityDoctor2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* CityDoctor2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
*/
package de.hft.stuttgart.citydoctor2.check;
import de.hft.stuttgart.citydoctor2.datastructure.AbstractBuilding;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject;
import de.hft.stuttgart.citydoctor2.datastructure.Building;
import de.hft.stuttgart.citydoctor2.datastructure.BuildingPart;
import de.hft.stuttgart.citydoctor2.datastructure.CityFurniture;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
import de.hft.stuttgart.citydoctor2.datastructure.GenericCityObject;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.Installation;
import de.hft.stuttgart.citydoctor2.datastructure.LandObject;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.datastructure.Opening;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.ReliefObject;
import de.hft.stuttgart.citydoctor2.datastructure.TinObject;
import de.hft.stuttgart.citydoctor2.datastructure.TransportationObject;
import de.hft.stuttgart.citydoctor2.datastructure.Vegetation;
import de.hft.stuttgart.citydoctor2.datastructure.WaterObject;
/**
*
* This class serves as the base for CheckableVisitors which fulfill utility functions, like e.g. collecting all
* sub-CityObjects in the datastructure of a CityObject.
* </p>
* Visitors extending from this class will not change the validated-flag of the visited Checkables.
*
*/
public abstract non-sealed class CheckableUtilsVisitor implements CheckableVisitor {
/**
* This function is used for checking of dependencies in {@link Check}. Since UtilsVisitors do not have
* dependencies this function will always return true.
*
* @param c a Checkable
* @return true
*/
@Override
public boolean canExecute(Checkable c) {
return true;
}
@Override
public final boolean isValidator() {
return false;
}
@Override
public void check(Checkable checkable) {
}
@Override
public void check(AbstractBuilding ab) {
}
@Override
public void check(BoundarySurface bs) {
}
@Override
public void check(BridgeObject bo) {
}
@Override
public void check(Building b) {
}
@Override
public void check(Installation bi) {
}
@Override
public void check(BuildingPart bp) {
}
@Override
public void check(CityObject co) {
}
@Override
public void check(LandObject lo) {
}
@Override
public void check(Opening o) {
}
@Override
public void check(TransportationObject to) {
}
@Override
public void check(Vegetation veg) {
}
@Override
public void check(WaterObject wo) {
}
@Override
public void check(Geometry geom) {
}
@Override
public void check(Polygon poly) {
}
@Override
public void check(LinearRing ring) {
}
@Override
public void check(TinObject tin) {
}
@Override
public void check(ReliefObject relief) {
}
@Override
public void check(CityFurniture cf) {
}
@Override
public void check(GenericCityObject gco) {
}
}
package de.hft.stuttgart.citydoctor2.check;
import de.hft.stuttgart.citydoctor2.datastructure.AbstractBuilding;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject;
import de.hft.stuttgart.citydoctor2.datastructure.Building;
import de.hft.stuttgart.citydoctor2.datastructure.BuildingPart;
import de.hft.stuttgart.citydoctor2.datastructure.CityFurniture;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
import de.hft.stuttgart.citydoctor2.datastructure.GenericCityObject;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.Installation;
import de.hft.stuttgart.citydoctor2.datastructure.LandObject;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.datastructure.Opening;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.ReliefObject;
import de.hft.stuttgart.citydoctor2.datastructure.TinObject;
import de.hft.stuttgart.citydoctor2.datastructure.TransportationObject;
import de.hft.stuttgart.citydoctor2.datastructure.Vegetation;
import de.hft.stuttgart.citydoctor2.datastructure.WaterObject;
public sealed interface CheckableVisitor permits Check, CheckableUtilsVisitor {
/**
* Returns whether a Checkable should be flagged as validated after accepting this Visitor.
*/
boolean isValidator();
boolean canExecute(Checkable c);
void check(Checkable checkable);
void check(AbstractBuilding ab);
void check(BoundarySurface bs);
void check(BridgeObject bo);
void check(Building b);
void check(Installation bi);
void check(BuildingPart bp);
void check(CityObject co);
void check(LandObject lo);
void check(Opening o);
void check(TransportationObject to);
void check(Vegetation veg);
void check(WaterObject wo);
void check(Geometry geom);
void check(Polygon poly);
void check(LinearRing ring);
void check(TinObject tin);
void check(ReliefObject relief);
void check(CityFurniture cf);
void check(GenericCityObject gco);
}
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
*/ */
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
...@@ -160,7 +160,7 @@ public abstract class AbstractBuilding extends CityObject { ...@@ -160,7 +160,7 @@ public abstract class AbstractBuilding extends CityObject {
} }
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
...@@ -136,7 +136,7 @@ public abstract class AbstractBuildingSubdivision extends CityObject { ...@@ -136,7 +136,7 @@ public abstract class AbstractBuildingSubdivision extends CityObject {
} }
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
...@@ -30,7 +29,7 @@ public abstract class AbstractFurniture extends CityObject { ...@@ -30,7 +29,7 @@ public abstract class AbstractFurniture extends CityObject {
private org.citygml4j.core.model.construction.AbstractFurniture af; private org.citygml4j.core.model.construction.AbstractFurniture af;
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import org.citygml4j.core.model.core.AbstractCityObject; import org.citygml4j.core.model.core.AbstractCityObject;
...@@ -32,7 +32,7 @@ public abstract class AbstractRoom extends CityObject { ...@@ -32,7 +32,7 @@ public abstract class AbstractRoom extends CityObject {
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
...@@ -143,7 +143,7 @@ public abstract class AbstractTunnel extends CityObject { ...@@ -143,7 +143,7 @@ public abstract class AbstractTunnel extends CityObject {
} }
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
*/ */
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
...@@ -145,7 +145,7 @@ public class BoundarySurface extends CityObject { ...@@ -145,7 +145,7 @@ public class BoundarySurface extends CityObject {
} }
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
*/ */
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
...@@ -95,7 +95,7 @@ public class BridgeConstructiveElement extends CityObject { ...@@ -95,7 +95,7 @@ public class BridgeConstructiveElement extends CityObject {
} }
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
*/ */
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
...@@ -191,7 +191,7 @@ public class BridgeObject extends CityObject { ...@@ -191,7 +191,7 @@ public class BridgeObject extends CityObject {
} }
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
*/ */
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import org.citygml4j.core.model.building.BuildingInstallation; import org.citygml4j.core.model.building.BuildingInstallation;
import org.citygml4j.core.model.building.BuildingInstallationProperty; import org.citygml4j.core.model.building.BuildingInstallationProperty;
import org.citygml4j.core.model.core.AbstractSpaceBoundaryProperty; import org.citygml4j.core.model.core.AbstractSpaceBoundaryProperty;
...@@ -45,7 +45,7 @@ public class Building extends AbstractBuilding { ...@@ -45,7 +45,7 @@ public class Building extends AbstractBuilding {
} }
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.util.geometry.GeometryFactory;
import java.io.Serial; import java.io.Serial;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -16,7 +14,7 @@ public class BuildingUnit extends AbstractBuildingSubdivision { ...@@ -16,7 +14,7 @@ public class BuildingUnit extends AbstractBuildingSubdivision {
private final List<Storey> storeys = new ArrayList<>(); private final List<Storey> storeys = new ArrayList<>();
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
for (Storey storey : storeys) { for (Storey storey : storeys) {
storey.accept(c); storey.accept(c);
......
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
*/ */
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckError; import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.exceptions.CityDoctorWriteException; import de.hft.stuttgart.citydoctor2.exceptions.CityDoctorWriteException;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
...@@ -147,7 +146,7 @@ public class CityDoctorModel { ...@@ -147,7 +146,7 @@ public class CityDoctorModel {
folder.mkdirs(); folder.mkdirs();
createFeatureStream().forEach(co -> { createFeatureStream().forEach(co -> {
Map<Lod, Set<Polygon>> polygonMap = new EnumMap<>(Lod.class); Map<Lod, Set<Polygon>> polygonMap = new EnumMap<>(Lod.class);
Check c = new AbstractCheck() { CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
@Override @Override
public void check(Geometry geom) { public void check(Geometry geom) {
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
...@@ -21,7 +21,7 @@ public class CityFurniture extends CityObject { ...@@ -21,7 +21,7 @@ public class CityFurniture extends CityObject {
private org.citygml4j.core.model.cityfurniture.CityFurniture cgmlCityFurniture; private org.citygml4j.core.model.cityfurniture.CityFurniture cgmlCityFurniture;
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
*/ */
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.visitors.GmlGeometryRebuilder; import de.hft.stuttgart.citydoctor2.utils.visitors.GmlGeometryRebuilder;
import de.hft.stuttgart.citydoctor2.utils.visitors.UnsetGeometriesVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.UnsetGeometriesVisitor;
...@@ -185,7 +185,7 @@ public abstract class CityObject extends GmlElement { ...@@ -185,7 +185,7 @@ public abstract class CityObject extends GmlElement {
public abstract FeatureType getFeatureType(); public abstract FeatureType getFeatureType();
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
*/ */
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.Checkable; import de.hft.stuttgart.citydoctor2.check.Checkable;
import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.math.Vector3d; import de.hft.stuttgart.citydoctor2.math.Vector3d;
import de.hft.stuttgart.citydoctor2.tesselation.JoglTesselator; import de.hft.stuttgart.citydoctor2.tesselation.JoglTesselator;
import de.hft.stuttgart.citydoctor2.tesselation.TesselatedPolygon; import de.hft.stuttgart.citydoctor2.tesselation.TesselatedPolygon;
...@@ -180,7 +180,7 @@ public class ConcretePolygon extends Polygon { ...@@ -180,7 +180,7 @@ public class ConcretePolygon extends Polygon {
* citydoctor2.check.Check) * citydoctor2.check.Check)
*/ */
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.CheckableVisitor;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils; import de.hft.stuttgart.citydoctor2.utils.CityGmlUtils;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
...@@ -33,7 +33,7 @@ public class GenericCityObject extends CityObject { ...@@ -33,7 +33,7 @@ public class GenericCityObject extends CityObject {
private final List<BoundarySurface> boundarySurfaceList = new ArrayList<>(); private final List<BoundarySurface> boundarySurfaceList = new ArrayList<>();
@Override @Override
public void accept(Check c) { public void accept(CheckableVisitor c) {
super.accept(c); super.accept(c);
if (c.canExecute(this)) { if (c.canExecute(this)) {
c.check(this); c.check(this);
......
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