TMF: Correct bug when synchronizing more than 2 traces
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / internal / tmf / core / synchronization / TmfTimestampTransformLinear.java
index e5f140dddbab19d7511a78a85611f007772fbf0b..7deb551831a89e4f761f03f8e552ffa986b6c8a3 100644 (file)
@@ -16,6 +16,7 @@ import java.math.BigDecimal;
 import java.math.MathContext;
 
 import org.eclipse.linuxtools.tmf.core.synchronization.ITmfTimestampTransform;
+import org.eclipse.linuxtools.tmf.core.synchronization.TimestampTransformFactory;
 import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp;
 
@@ -27,7 +28,7 @@ import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp;
  * @author Geneviève Bastien
  * @since 3.0
  */
-public class TmfTimestampTransformLinear implements ITmfTimestampTransform {
+public class TmfTimestampTransformLinear implements ITmfTimestampTransformInvertible {
 
     /**
      * Generated serial UID
@@ -106,7 +107,7 @@ public class TmfTimestampTransformLinear implements ITmfTimestampTransform {
             TmfTimestampTransformLinear ttl = (TmfTimestampTransformLinear) composeWith;
             BigDecimal newAlpha = fAlpha.multiply(ttl.fAlpha, fMc);
             BigDecimal newBeta = fAlpha.multiply(ttl.fBeta, fMc).add(fBeta);
-            return new TmfTimestampTransformLinear(newAlpha, newBeta);
+            return TimestampTransformFactory.createLinear(newAlpha, newBeta);
         } else {
             /*
              * We do not know what to do with this kind of transform, just
@@ -141,4 +142,9 @@ public class TmfTimestampTransformLinear implements ITmfTimestampTransform {
                 " ]"; //$NON-NLS-1$
     }
 
+    @Override
+    public ITmfTimestampTransform inverse() {
+        return TimestampTransformFactory.createLinear(BigDecimal.ONE.divide(fAlpha, fMc), BigDecimal.valueOf(-1).multiply(fBeta).divide(fAlpha, fMc));
+    }
+
 }
This page took 0.026263 seconds and 5 git commands to generate.