From deebe01d80f1ffeabc641eaf7302b2103150fecf Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 17 Oct 2019 13:29:47 +0200 Subject: [PATCH] comparison of objects is more verbose --- .../common/comparator/AbstractComparator.java | 18 +++++++ .../common/comparator/ColorComparator.java | 5 +- .../common/comparator/DoubleComparator.java | 4 +- .../common/comparator/IntegerComparator.java | 4 +- .../common/comparator/StringComparator.java | 4 +- .../map/layout/graphics/LayerComparator.java | 49 ++++++++----------- .../layout/graphics/LayerTextComparator.java | 21 +++++--- 7 files changed, 57 insertions(+), 48 deletions(-) create mode 100644 commons/src/main/java/lcsb/mapviewer/common/comparator/AbstractComparator.java diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/AbstractComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/AbstractComparator.java new file mode 100644 index 0000000000..f3215e5a92 --- /dev/null +++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/AbstractComparator.java @@ -0,0 +1,18 @@ +package lcsb.mapviewer.common.comparator; + +import java.util.Comparator; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public abstract class AbstractComparator<T> implements Comparator<T> { + private Logger logger = LogManager.getLogger(); + + public int compare(T o1, T o2, String objectName) { + int result = compare(o1, o2); + if (result != 0) { + logger.debug(objectName + " different: " + o1 + "\t" + o2); + } + return result; + } +} diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/ColorComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/ColorComparator.java index a788fe958a..a077704aa2 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/comparator/ColorComparator.java +++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/ColorComparator.java @@ -1,7 +1,6 @@ package lcsb.mapviewer.common.comparator; -import java.awt.*; -import java.util.Comparator; +import java.awt.Color; /** * Comparator implementation for {@link Color} class. @@ -9,7 +8,7 @@ import java.util.Comparator; * @author Piotr Gawron * */ -public class ColorComparator implements Comparator<Color> { +public class ColorComparator extends AbstractComparator<Color> { @Override public int compare(Color arg0, Color arg1) { diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/DoubleComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/DoubleComparator.java index d5ee693a0f..434ca24d0b 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/comparator/DoubleComparator.java +++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/DoubleComparator.java @@ -1,7 +1,5 @@ package lcsb.mapviewer.common.comparator; -import java.util.Comparator; - import lcsb.mapviewer.common.Configuration; /** @@ -10,7 +8,7 @@ import lcsb.mapviewer.common.Configuration; * @author Piotr Gawron * */ -public class DoubleComparator implements Comparator<Double> { +public class DoubleComparator extends AbstractComparator<Double> { /** * Epsilon value used for comparison of doubles. diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/IntegerComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/IntegerComparator.java index 793a591aa4..5a7408b7a1 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/comparator/IntegerComparator.java +++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/IntegerComparator.java @@ -1,14 +1,12 @@ package lcsb.mapviewer.common.comparator; -import java.util.Comparator; - /** * Comparator implemented for {@link Integer} class. * * @author Piotr Gawron * */ -public class IntegerComparator implements Comparator<Integer> { +public class IntegerComparator extends AbstractComparator<Integer> { @Override public int compare(Integer arg0, Integer arg1) { diff --git a/commons/src/main/java/lcsb/mapviewer/common/comparator/StringComparator.java b/commons/src/main/java/lcsb/mapviewer/common/comparator/StringComparator.java index 737c4cde77..c2447f0d93 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/comparator/StringComparator.java +++ b/commons/src/main/java/lcsb/mapviewer/common/comparator/StringComparator.java @@ -1,7 +1,5 @@ package lcsb.mapviewer.common.comparator; -import java.util.Comparator; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -12,7 +10,7 @@ import org.apache.logging.log4j.Logger; * @author Piotr Gawron * */ -public class StringComparator implements Comparator<String> { +public class StringComparator extends AbstractComparator<String> { /** * Default class logger. */ diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerComparator.java index fd61a1c447..53ed7c7276 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerComparator.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerComparator.java @@ -6,6 +6,7 @@ import org.apache.logging.log4j.Logger; import lcsb.mapviewer.common.Comparator; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.comparator.*; +import lcsb.mapviewer.model.graphics.PolylineData; import lcsb.mapviewer.model.graphics.PolylineDataComparator; /** @@ -88,40 +89,32 @@ public class LayerComparator extends Comparator<Layer> { return integerComparator.compare(arg0.getOvals().size(), arg1.getOvals().size()); } - LayerTextComparator textComparator = new LayerTextComparator(epsilon); - for (int i = 0; i < arg0.getTexts().size(); i++) { - int status = textComparator.compare(arg0.getTexts().get(i), arg1.getTexts().get(i)); - if (status != 0) { - logger.debug("layer texts different"); - return status; - } + ListComparator<LayerText> textComparator = new ListComparator<>(new LayerTextComparator(epsilon)); + int status = textComparator.compare(arg0.getTexts(), arg1.getTexts()); + if (status != 0) { + logger.debug("layer texts different"); + return status; } - LayerOvalComparator ovalComparator = new LayerOvalComparator(epsilon); - for (int i = 0; i < arg0.getOvals().size(); i++) { - int status = ovalComparator.compare(arg0.getOvals().get(i), arg1.getOvals().get(i)); - if (status != 0) { - logger.debug("layer ovals different"); - return status; - } + ListComparator<LayerOval> ovalComparator = new ListComparator<>(new LayerOvalComparator(epsilon)); + status = ovalComparator.compare(arg0.getOvals(), arg1.getOvals()); + if (status != 0) { + logger.debug("layer ovals different"); + return status; } - LayerRectComparator rectComparator = new LayerRectComparator(epsilon); - for (int i = 0; i < arg0.getRectangles().size(); i++) { - int status = rectComparator.compare(arg0.getRectangles().get(i), arg1.getRectangles().get(i)); - if (status != 0) { - logger.debug("layer rectangles different "); - return status; - } + ListComparator<LayerRect> rectComparator = new ListComparator<>(new LayerRectComparator(epsilon)); + status = rectComparator.compare(arg0.getRectangles(), arg1.getRectangles()); + if (status != 0) { + logger.debug("layer rectangles different "); + return status; } - PolylineDataComparator lineComparator = new PolylineDataComparator(epsilon); - for (int i = 0; i < arg0.getLines().size(); i++) { - int status = lineComparator.compare(arg0.getLines().get(i), arg1.getLines().get(i)); - if (status != 0) { - logger.debug("layer lines different "); - return status; - } + ListComparator<PolylineData> lineComparator = new ListComparator<>(new PolylineDataComparator(epsilon)); + status = lineComparator.compare(arg0.getLines(), arg1.getLines()); + if (status != 0) { + logger.debug("layer lines different "); + return status; } return 0; diff --git a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparator.java index e656f63c47..82ffeb69a3 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparator.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/layout/graphics/LayerTextComparator.java @@ -1,5 +1,8 @@ package lcsb.mapviewer.model.map.layout.graphics; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + import lcsb.mapviewer.common.Comparator; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.comparator.*; @@ -13,6 +16,8 @@ import lcsb.mapviewer.common.comparator.*; */ public class LayerTextComparator extends Comparator<LayerText> { + private Logger logger = LogManager.getLogger(); + /** * Epsilon value used for comparison of doubles. */ @@ -44,35 +49,35 @@ public class LayerTextComparator extends Comparator<LayerText> { IntegerComparator integerComparator = new IntegerComparator(); if (doubleComparator.compare(arg0.getWidth(), arg1.getWidth()) != 0) { - return doubleComparator.compare(arg0.getWidth(), arg1.getWidth()); + return doubleComparator.compare(arg0.getWidth(), arg1.getWidth(), "width"); } if (doubleComparator.compare(arg0.getHeight(), arg1.getHeight()) != 0) { - return doubleComparator.compare(arg0.getHeight(), arg1.getHeight()); + return doubleComparator.compare(arg0.getHeight(), arg1.getHeight(), "height"); } if (doubleComparator.compare(arg0.getX(), arg1.getX()) != 0) { - return doubleComparator.compare(arg0.getX(), arg1.getX()); + return doubleComparator.compare(arg0.getX(), arg1.getX(), "x"); } if (doubleComparator.compare(arg0.getY(), arg1.getY()) != 0) { - return doubleComparator.compare(arg0.getY(), arg1.getY()); + return doubleComparator.compare(arg0.getY(), arg1.getY(), "y"); } if (colorComparator.compare(arg0.getColor(), arg1.getColor()) != 0) { - return colorComparator.compare(arg0.getColor(), arg1.getColor()); + return colorComparator.compare(arg0.getColor(), arg1.getColor(), "color"); } if (stringComparator.compare(arg0.getNotes(), arg1.getNotes()) != 0) { - return stringComparator.compare(arg0.getNotes(), arg1.getNotes()); + return stringComparator.compare(arg0.getNotes(), arg1.getNotes(), "notes"); } if (doubleComparator.compare(arg0.getFontSize(), arg1.getFontSize()) != 0) { - return doubleComparator.compare(arg0.getFontSize(), arg1.getFontSize()); + return doubleComparator.compare(arg0.getFontSize(), arg1.getFontSize(), "fontSize"); } if (integerComparator.compare(arg0.getZ(), arg1.getZ()) != 0) { - return integerComparator.compare(arg0.getZ(), arg1.getZ()); + return integerComparator.compare(arg0.getZ(), arg1.getZ(), "z"); } return 0; -- GitLab