tmf: Make CtfLocation extend TmfLocation
authorAlexandre Montplaisir <alexmonthy@voxpopuli.im>
Thu, 7 Feb 2013 19:22:56 +0000 (14:22 -0500)
committerAlexandre Montplaisir <alexmonthy@voxpopuli.im>
Thu, 7 Feb 2013 21:44:22 +0000 (16:44 -0500)
We save one field, but more interestingly we don't need to
duplicate the equals() and hashCode() methods.

refs bug 387929

Change-Id: I4c23d6e80cc860470453963a2d559066a811fbc1
Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Reviewed-on: https://git.eclipse.org/r/10240
Tested-by: Hudson CI
Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com>
IP-Clean: Patrick Tasse <patrick.tasse@gmail.com>

org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfLocationTest.java
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/trace/TmfLocationTest.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/ctfadaptor/CtfLocation.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/trace/TmfLocation.java

index 1f88ad9b187eeb4da7bb42a59f72bcd252a2d721..d3407d59070b70eb6d317de56b12fcd43e310d6f 100644 (file)
@@ -66,17 +66,6 @@ public class CtfLocationTest {
         assertEquals(new Long(0L), (Long)result.getLocationInfo().getTimestamp());
     }
 
-    /**
-     * Run the CtfLocation clone() method test.
-     */
-    @Test
-    public void testClone() {
-        CtfLocation result = fixture.clone();
-
-        assertNotNull(result);
-        assertEquals(Long.valueOf(1), (Long)result.getLocationInfo().getTimestamp());
-    }
-
     /**
      * Run the Long getLocation() method test.
      */
@@ -109,7 +98,7 @@ public class CtfLocationTest {
     @Test
     public void testToString_valid(){
         CtfLocation fixture2 = new CtfLocation(new CtfLocationInfo(1337, 7331));
-        assertEquals("CtfLocation: Element [1337/7331]",fixture2.toString()); //$NON-NLS-1$
+        assertEquals("CtfLocation [fLocationInfo=Element [1337/7331]]", fixture2.toString()); //$NON-NLS-1$
     }
 
     /**
@@ -118,6 +107,6 @@ public class CtfLocationTest {
     @Test
     public void testToString_invalid(){
         CtfLocation fixture2 = new CtfLocation(new CtfLocationInfo(-1, -1));
-        assertEquals("CtfLocation: INVALID",fixture2.toString()); //$NON-NLS-1$
+        assertEquals("CtfLocation [INVALID]", fixture2.toString()); //$NON-NLS-1$
     }
 }
index f091cd9fc0b3627282dbb5791bae62a765716a6d..73062946685929fb0e047ed87c8929a8799b0e1a 100644 (file)
@@ -179,9 +179,9 @@ public class TmfLocationTest {
         TmfLongLocation location2 = new TmfLongLocation(lng);
         TmfTimestampLocation location3 = new TmfTimestampLocation(ts);
 
-        String expected1 = "TmfLocation [fLocation=" + str + "]";
-        String expected2 = "TmfLocation [fLocation=" + lng + "]";
-        String expected3 = "TmfLocation [fLocation=" + ts + "]";
+        String expected1 = "TmfStringLocation [fLocationInfo=" + str + "]";
+        String expected2 = "TmfLongLocation [fLocationInfo=" + lng + "]";
+        String expected3 = "TmfTimestampLocation [fLocationInfo=" + ts + "]";
 
         assertEquals("toString", expected1, location1.toString());
         assertEquals("toString", expected2, location2.toString());
index 93e3b1013d596f85b02f8d1e5f47fc2683d10b99..a41066b50a97701f99717ffcfd85459688cbf759 100644 (file)
@@ -6,12 +6,14 @@
  * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- * Contributors: Matthew Khouzam - Initial API and implementation
+ * Contributors:
+ *   Matthew Khouzam - Initial API and implementation
+ *   Alexandre Montplaisir - Extends TmfLocation
  *******************************************************************************/
 package org.eclipse.linuxtools.tmf.core.ctfadaptor;
 
 import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
-import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation;
+import org.eclipse.linuxtools.tmf.core.trace.TmfLocation;
 
 /**
  * The nugget of information that is unique to a location in a CTF trace.
@@ -21,17 +23,23 @@ import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation;
  * @version 1.0
  * @author Matthew Khouzam
  */
-public final class CtfLocation implements ITmfLocation {
+public final class CtfLocation extends TmfLocation {
 
-    private final CtfLocationInfo fLocation;
+    // ------------------------------------------------------------------------
+    // Attributes
+    // ------------------------------------------------------------------------
 
     /**
      * An invalid location
      */
     public static final CtfLocationInfo INVALID_LOCATION = new CtfLocationInfo(-1, -1);
 
+    // ------------------------------------------------------------------------
+    // Constructors
+    // ------------------------------------------------------------------------
+
     /**
-     * Constructor for CtfLocation. Uses a default index of 0.
+     * Basic constructor for CtfLocation. Uses a default index of 0.
      *
      * @param timestamp
      *            The timestamp of this location
@@ -41,7 +49,7 @@ public final class CtfLocation implements ITmfLocation {
     }
 
     /**
-     * Standard constructor
+     * Constructor using timestamp object and index
      *
      * @param timestamp
      *            The timestamp of this location
@@ -54,7 +62,7 @@ public final class CtfLocation implements ITmfLocation {
     }
 
     /**
-     * Change this location's timestamp and index values.
+     * Constructor using a long value for the timestamp, and an index
      *
      * @param timestampValue
      *            The new timestamp
@@ -63,84 +71,53 @@ public final class CtfLocation implements ITmfLocation {
      * @since 2.0
      */
     public CtfLocation(final long timestampValue, final long index) {
-       this(new CtfLocationInfo(timestampValue, index));
+       super(new CtfLocationInfo(timestampValue, index));
     }
 
     /**
-     * Copy constructor
+     * Constructor using a pre-made locationInfo object
      *
-     * @param location
-     *            Other location to copy
+     * @param locationInfo
+     *            The locationInfo object to use
      * @since 2.0
      */
-    public CtfLocation(final CtfLocationInfo location) {
-        fLocation = location;
+    public CtfLocation(CtfLocationInfo locationInfo) {
+        super(locationInfo);
     }
 
     /**
-     * Get the Location Data of this location
+     * Copy constructor
      *
-     * @return The CtfLocationData
-     * @see org.eclipse.linuxtools.tmf.core.trace.ITmfLocation#getLocationInfo()
+     * @param location
+     *            Other location to copy
      * @since 2.0
      */
-    @Override
-    public CtfLocationInfo getLocationInfo() {
-        return fLocation;
-    }
-
-    @Override
-    public CtfLocation clone() {
-        return new CtfLocation(new CtfLocationInfo(fLocation.getTimestamp(), fLocation.getIndex()));
+    public CtfLocation(final CtfLocation location) {
+        super(location);
     }
 
+    // ------------------------------------------------------------------------
+    // TmfLocation
+    // ------------------------------------------------------------------------
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#hashCode()
+    /**
+     * @since 2.0
      */
     @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = (prime * result)
-                + ((fLocation == null) ? 0 : fLocation.hashCode());
-        return result;
+    public CtfLocationInfo getLocationInfo() {
+        return (CtfLocationInfo) super.getLocationInfo();
     }
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (!(obj instanceof CtfLocation)) {
-            return false;
-        }
-        CtfLocation other = (CtfLocation) obj;
-        if (fLocation == null) {
-            if (other.fLocation != null) {
-                return false;
-            }
-        } else if (!fLocation.equals(other.fLocation)) {
-            return false;
-        }
-        return true;
-    }
+    // ------------------------------------------------------------------------
+    // Object
+    // ------------------------------------------------------------------------
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#toString()
-     */
     @Override
     public String toString() {
         if( this.getLocationInfo().equals(CtfLocation.INVALID_LOCATION )) {
-            return "CtfLocation: INVALID"; //$NON-NLS-1$
+            return getClass().getSimpleName() + " [INVALID]"; //$NON-NLS-1$
         }
-        return "CtfLocation: " + getLocationInfo().toString(); //$NON-NLS-1$
+        return super.toString();
     }
 
 }
index 363ceef022c201c807c51ae099a4123a83abb5be..e8647740a89f0b7f322cfb4f4f5e6d496177881b 100644 (file)
@@ -33,18 +33,11 @@ public abstract class TmfLocation implements ITmfLocation {
     // Constructors
     // ------------------------------------------------------------------------
 
-    /**
-     * Default constructor (for the 'null' location)
-     */
-    @SuppressWarnings("unused")
-    private TmfLocation() {
-        fLocationInfo = null;
-    }
-
     /**
      * Standard constructor.
      *
-     * @param locationInfo the concrete trace location
+     * @param locationInfo
+     *            The concrete trace location
      */
     public TmfLocation(final Comparable<?> locationInfo) {
         fLocationInfo = locationInfo;
@@ -53,7 +46,8 @@ public abstract class TmfLocation implements ITmfLocation {
     /**
      * Copy constructor
      *
-     * @param location the original trace location
+     * @param location
+     *            The original trace location
      */
     public TmfLocation(final TmfLocation location) {
         fLocationInfo = location.fLocationInfo;
@@ -63,9 +57,6 @@ public abstract class TmfLocation implements ITmfLocation {
     // Getters
     // ------------------------------------------------------------------------
 
-    /* (non-Javadoc)
-     * @see org.eclipse.linuxtools.tmf.core.trace.ITmfLocation#getLocationInfo()
-     */
     /**
      * @since 2.0
      */
@@ -78,9 +69,6 @@ public abstract class TmfLocation implements ITmfLocation {
     // Object
     // ------------------------------------------------------------------------
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         final int prime = 31;
@@ -89,9 +77,6 @@ public abstract class TmfLocation implements ITmfLocation {
         return result;
     }
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(final Object obj) {
         if (this == obj) {
@@ -117,7 +102,7 @@ public abstract class TmfLocation implements ITmfLocation {
     @Override
     @SuppressWarnings("nls")
     public String toString() {
-        return "TmfLocation [fLocation=" + fLocationInfo + "]";
+        return getClass().getSimpleName() + " [fLocationInfo=" + fLocationInfo.toString() + "]";
     }
 
 }
This page took 0.038504 seconds and 5 git commands to generate.