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
package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.Checkable;
/**
* This Visitor removes the check results from a CityObject and the objects in its datastructure.
*/
public class ClearCheckResultsVisitor extends AbstractCheck {
public class ClearVisitorResultsVisitor extends CheckableUtilsVisitor {
@Override
public void check(Checkable checkable) {
......
package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.Checkable;
import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound;
import de.hft.stuttgart.citydoctor2.utils.ThrowUtils;
......@@ -11,7 +11,7 @@ import de.hft.stuttgart.citydoctor2.utils.ThrowUtils;
* This visitor's check method terminates early by throwing an unchecked {@link CheckErrorFound},
* use {@link #checkObject(Checkable) ContainsAnyErrorVisitor.checkObject(Checkable)} to handle the Throwable.
*/
public class ContainsAnyErrorVisitor extends AbstractCheck {
public class ContainsAnyErrorVisitor extends CheckableUtilsVisitor {
/**
* Checks if a Checkable, or any Object in its datastructure, contains any error.
......
package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.Checkable;
import de.hft.stuttgart.citydoctor2.utils.CheckErrorFound;
......@@ -12,7 +12,7 @@ import de.hft.stuttgart.citydoctor2.utils.ThrowUtils;
* This visitor's check method terminates early by throwing an unchecked {@link CheckErrorFound},
* use {@link #checkObject(Checkable, CheckId) ContainsAnyErrorVisitor.checkObject(Checkable, CheckId)} to handle the Throwable.
*/
public class ContainsErrorVisitor extends AbstractCheck {
public class ContainsErrorVisitor extends CheckableUtilsVisitor {
private CheckId checkId;
......
package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.util.geometry.GeometryFactory;
......@@ -11,7 +11,7 @@ import java.util.Objects;
* This Visitor recreates the Geometries of the original CityGml object from the associated Geometries in CityDoctor's
* internal model.
*/
public class GmlGeometryRebuilder extends AbstractCheck {
public class GmlGeometryRebuilder extends CheckableUtilsVisitor {
private final GeometryFactory factory;
private final ParserConfiguration config;
......
package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
/**
* This Visitor prepares the {@link Geometry Geometries} in a Checkable for low-memory consumption mode.
*/
public class PrepareForCheckingVisitor extends AbstractCheck {
public class PrepareForCheckingVisitor extends CheckableUtilsVisitor {
@Override
public void check(Geometry geom) {
......
package de.hft.stuttgart.citydoctor2.utils.visitors;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.datastructure.CityObject;
/**
* This Visitor removes the GmlGeometries from the linked original GmlObjects in a CityObject's datastructure to reduce
* memory bloat.
*/
public class UnsetGeometriesVisitor extends AbstractCheck {
public class UnsetGeometriesVisitor extends CheckableUtilsVisitor {
@Override
......
......@@ -24,7 +24,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
......@@ -32,9 +31,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearCheckResultsVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.GmlGeometryRebuilder;
import de.hft.stuttgart.citydoctor2.utils.visitors.UnsetGeometriesVisitor;
import org.citygml4j.core.model.construction.WallSurface;
import org.citygml4j.core.model.core.AbstractSpaceBoundaryProperty;
import org.citygml4j.core.util.geometry.GeometryFactory;
......@@ -43,7 +40,7 @@ import org.mockito.Mockito;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import org.xmlobjects.gml.model.geometry.primitives.SolidProperty;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -62,7 +59,7 @@ public class AbstractBuildingTest {
AtomicInteger abCounter = new AtomicInteger(0);
AtomicInteger bsCounter = new AtomicInteger(0);
AtomicInteger biCounter = new AtomicInteger(0);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
@Override
public void check(AbstractBuilding ab) {
......@@ -79,7 +76,7 @@ public class AbstractBuildingTest {
assertEquals(1, bsCounter.intValue());
assertEquals(0, biCounter.intValue());
AbstractCheck c2 = new AbstractCheck() {
CheckableUtilsVisitor c2 = new CheckableUtilsVisitor() {
@Override
public void check(Installation bi) {
......@@ -109,7 +106,7 @@ public class AbstractBuildingTest {
ab.addBoundarySurface(mockBSurface);
ab.addGeometry(mockGeometry);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
ab.accept(c);
......
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.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -50,7 +50,7 @@ public class AbstractRoomTest {
abRoom.addBoundarySurface(mockBoundarySurface);
abRoom.addGeometry(geometry);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
abRoom.accept(c);
......
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.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -52,7 +52,7 @@ public class AbstractTunnelTest {
at.addBoundarySurface(mockBoundarySurface);
at.addGeometry(mockGeometry);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
at.accept(c);
......
......@@ -30,7 +30,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearCheckResultsVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearVisitorResultsVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.GmlGeometryRebuilder;
import de.hft.stuttgart.citydoctor2.utils.visitors.UnsetGeometriesVisitor;
import org.citygml4j.core.model.construction.AbstractConstructionSurface;
......@@ -41,7 +41,7 @@ import org.junit.Test;
import org.mockito.Mockito;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -58,7 +58,7 @@ public class BoundarySurfaceTest {
Opening oMock = Mockito.mock(Opening.class);
bs.addOpening(oMock);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
bs.accept(c);
......@@ -71,7 +71,7 @@ public class BoundarySurfaceTest {
Opening oMock = Mockito.mock(Opening.class);
bs.addOpening(oMock);
AtomicInteger bsCounter = new AtomicInteger(0);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
@Override
public void check(BoundarySurface bs) {
......@@ -89,7 +89,7 @@ public class BoundarySurfaceTest {
Opening oMock = Mockito.mock(Opening.class);
bs.addOpening(oMock);
AtomicInteger bsCounter = new AtomicInteger(0);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
@Override
public void check(BridgeObject bo) {
......@@ -142,7 +142,7 @@ public class BoundarySurfaceTest {
assertFalse(bs.getAllCheckResults().isEmpty());
bs.addOpening(oMock);
bs.clearAllContainedCheckResults();
verify(oMock).accept(any(ClearCheckResultsVisitor.class));
verify(oMock).accept(any(ClearVisitorResultsVisitor.class));
assertTrue(bs.getAllCheckResults().isEmpty());
}
......
......@@ -39,7 +39,7 @@ import org.citygml4j.core.util.geometry.GeometryFactory;
import org.citygml4j.core.visitor.ObjectVisitor;
import org.junit.Test;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -58,7 +58,7 @@ public class BridgeObjectTest {
bo.addBoundarySurface(new BoundarySurface(null));
AtomicInteger boCounter = new AtomicInteger(0);
AtomicInteger bsCounter = new AtomicInteger(0);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
@Override
public void check(BridgeObject bo) {
......@@ -75,7 +75,7 @@ public class BridgeObjectTest {
assertEquals(1, bsCounter.intValue());
AtomicInteger boCounter2 = new AtomicInteger(0);
c = new AbstractCheck() {
c = new CheckableUtilsVisitor() {
};
bo.accept(c);
assertEquals(0, boCounter2.intValue());
......@@ -101,7 +101,7 @@ public class BridgeObjectTest {
bo.addBoundarySurface(bsMock);
bo.addGeometry(geomMock);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
bo.accept(c);
......
......@@ -26,7 +26,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import org.citygml4j.core.model.construction.RoofSurface;
import org.junit.Test;
import org.mockito.Mockito;
......@@ -151,7 +151,7 @@ public class BuildingTest {
bp.addStorey(mockStorey);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
b.accept(c);
......
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.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -31,7 +31,7 @@ public class CityObjectTest {
Geometry mockGeometry = mock(Geometry.class);
co.addGeometry(mockGeometry);
AbstractCheck check = new AbstractCheck() {
CheckableUtilsVisitor check = new CheckableUtilsVisitor() {
};
co.accept(check);
......
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.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -30,7 +30,7 @@ public class GenericCityObjectTest {
gco.addBoundarySurface(mockSurface);
gco.addGeometry(mockGeometry);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
gco.accept(c);
......
......@@ -32,8 +32,8 @@ import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearCheckResultsVisitor;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearVisitorResultsVisitor;
import org.citygml4j.core.model.construction.AbstractConstructionSurface;
import org.citygml4j.core.model.construction.WallSurface;
import org.citygml4j.core.util.geometry.GeometryFactory;
......@@ -63,7 +63,7 @@ public class GeometryTest {
geom.addPolygon(mockPolygon);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
geom.accept(c);
......@@ -300,7 +300,7 @@ public class GeometryTest {
Polygon p = mock(Polygon.class);
geom.addPolygon(p);
geom.clearAllContainedCheckResults();
verify(p).accept(any(ClearCheckResultsVisitor.class));
verify(p).accept(any(ClearVisitorResultsVisitor.class));
assertFalse(geom.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
}
......
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.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -150,7 +150,7 @@ public class ImplicitGeometryTest {
AtomicInteger loCounter = new AtomicInteger(0);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
@Override
public void check(Polygon lo) {
loCounter.incrementAndGet();
......
package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckableUtilsVisitor;
import org.citygml4j.core.model.relief.ReliefFeature;
import org.junit.Test;
......@@ -16,7 +16,7 @@ public class ReliefObjectTest {
TinObject mockTin = mock(TinObject.class);
relief.addComponent(mockTin);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
relief.accept(c);
......
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.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -32,7 +32,7 @@ public class TinObjectTest {
tin.addGeometry(mockGeometry);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
tin.accept(c);
......
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.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
......@@ -54,7 +54,7 @@ public class TopLevelTransportFeatureTest {
top.addSection(mockSection);
top.addIntersection(mockIntersection);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
top.accept(c);
......
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.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearCheckResultsVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearVisitorResultsVisitor;
import org.citygml4j.core.model.core.AbstractSpaceBoundary;
import org.citygml4j.core.model.core.AbstractUnoccupiedSpace;
import org.citygml4j.core.model.deprecated.core.DeprecatedPropertiesOfAbstractCityObject;
......@@ -37,7 +37,7 @@ public class TrafficSpaceTest {
TrafficAreaObject areaMock = mock(TrafficAreaObject.class);
tso.addTrafficArea(areaMock);
AbstractCheck c = new AbstractCheck() {
CheckableUtilsVisitor c = new CheckableUtilsVisitor() {
};
tso.accept(c);
......@@ -91,7 +91,7 @@ public class TrafficSpaceTest {
tso.clearAllContainedCheckResults();
assertFalse(tso.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
verify(taMock).accept(any(ClearCheckResultsVisitor.class));
verify(taMock).accept(any(ClearVisitorResultsVisitor.class));
}
@Test
......
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