From: Alexandre Montplaisir Date: Fri, 7 Oct 2016 22:02:39 +0000 (-0400) Subject: tmf: Add equals/hashCode to TmfConstantTransform X-Git-Url: http://git.efficios.com/?p=deliverable%2Ftracecompass.git;a=commitdiff_plain;h=4a1d13c4965799a6afd60b6ff26c0d7fb282a0e6 tmf: Add equals/hashCode to TmfConstantTransform Without that, two equivalent transforms would be considered different, because the object is serialized every time, causing it to become a new instance every time a trace is re-opened. Change-Id: I4f1dcbf503032329cdce7ac5c0ef351545e392e8 Signed-off-by: Alexandre Montplaisir Reviewed-on: https://git.eclipse.org/r/82779 Reviewed-by: Hudson CI Reviewed-by: Genevieve Bastien Tested-by: Genevieve Bastien --- diff --git a/tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/synchronization/TsTransformTest.java b/tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/synchronization/TsTransformTest.java index 7839cdc448..32ba5bb253 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/synchronization/TsTransformTest.java +++ b/tmf/org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/synchronization/TsTransformTest.java @@ -14,6 +14,7 @@ package org.eclipse.tracecompass.tmf.core.tests.synchronization; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import java.math.BigDecimal; @@ -21,6 +22,7 @@ import java.util.HashMap; import java.util.Map; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.tracecompass.internal.tmf.core.synchronization.TmfConstantTransform; import org.eclipse.tracecompass.internal.tmf.core.synchronization.TmfTimestampTransform; import org.eclipse.tracecompass.internal.tmf.core.synchronization.TmfTimestampTransformLinear; import org.eclipse.tracecompass.tmf.core.synchronization.ITmfTimestampTransform; @@ -107,7 +109,20 @@ public class TsTransformTest { assertFalse(ti.equals(ttl)); assertFalse(ttl.equals(ti)); + } + /** + * Test the equality of {@link TmfConstantTransform} objects. + */ + @Test + public void testEqualityConstantTransform() { + ITmfTimestampTransform tt1 = new TmfConstantTransform(50L); + ITmfTimestampTransform tt2 = new TmfConstantTransform(50L); + ITmfTimestampTransform tt3 = new TmfConstantTransform(-10L); + + assertEquals(tt1, tt2); + assertNotEquals(tt1, tt3); + assertNotEquals(tt2, tt3); } /** diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/synchronization/TmfConstantTransform.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/synchronization/TmfConstantTransform.java index dfa470ddbc..78baa2a138 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/synchronization/TmfConstantTransform.java +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/synchronization/TmfConstantTransform.java @@ -12,6 +12,8 @@ package org.eclipse.tracecompass.internal.tmf.core.synchronization; +import java.util.Objects; + import org.eclipse.jdt.annotation.NonNull; import org.eclipse.tracecompass.tmf.core.synchronization.ITmfTimestampTransform; import org.eclipse.tracecompass.tmf.core.synchronization.TimestampTransformFactory; @@ -98,6 +100,31 @@ public class TmfConstantTransform implements ITmfTimestampTransformInvertible { } } + @Override + public ITmfTimestampTransform inverse() { + return TimestampTransformFactory.createWithOffset(-1 * fOffset); + } + + @Override + public int hashCode() { + return Objects.hash(fOffset); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + TmfConstantTransform other = (TmfConstantTransform) obj; + return (fOffset == other.fOffset); + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -107,9 +134,4 @@ public class TmfConstantTransform implements ITmfTimestampTransformInvertible { return builder.toString(); } - @Override - public ITmfTimestampTransform inverse() { - return TimestampTransformFactory.createWithOffset(-1 * fOffset); - } - }