1 /*******************************************************************************
2 * Copyright (c) 2012 Ericsson
4 * All rights reserved. This program and the accompanying materials are made
5 * available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
9 * Contributors: Matthew Khouzam - Initial API and implementation
10 *******************************************************************************/
11 package org
.eclipse
.linuxtools
.tmf
.core
.ctfadaptor
;
13 import org
.eclipse
.linuxtools
.tmf
.core
.event
.ITmfTimestamp
;
14 import org
.eclipse
.linuxtools
.tmf
.core
.trace
.ITmfLocation
;
17 * The nugget of information that is unique to a location in a CTF trace.
19 * It can be copied and used to restore a position in a given trace.
22 * @author Matthew Khouzam
24 public class CtfLocation
implements ITmfLocation
, Cloneable
{
26 private CtfLocationData fLocation
;
31 public static final CtfLocationData INVALID_LOCATION
= new CtfLocationData(-1, -1);
34 * Constructor for CtfLocation. Uses a default index of 0.
37 * The timestamp of this location
39 public CtfLocation(ITmfTimestamp timestamp
) {
40 setLocation(new CtfLocationData(timestamp
.getValue(), 0));
44 * Standard constructor
47 * The timestamp of this location
49 * The index of this location for this timestamp
52 public CtfLocation(ITmfTimestamp timestamp
, long index
) {
53 setLocation(new CtfLocationData(timestamp
.getValue(), index
));
60 * Other location to copy
63 public CtfLocation(CtfLocationData location
) {
64 setLocation(location
);
68 * Move this location to another location's position.
71 * The location to seek to
74 public void setLocation(CtfLocationData location
) {
75 this.fLocation
= location
;
79 * Change this location's timestamp and index values.
81 * @param timestampValue
87 public void setLocation(long timestampValue
, long index
) {
88 this.fLocation
= new CtfLocationData(timestampValue
, index
);
93 * Get the Location Data of this location
95 * @return The CtfLocationData
96 * @see org.eclipse.linuxtools.tmf.core.trace.ITmfLocation#getLocationInfo()
100 public CtfLocationData
getLocationInfo() {
105 public CtfLocation
clone() {
106 return new CtfLocation(new CtfLocationData(fLocation
.getTimestamp(), fLocation
.getIndex()));
111 * @see java.lang.Object#hashCode()
114 public int hashCode() {
115 final int prime
= 31;
117 result
= (prime
* result
)
118 + ((fLocation
== null) ?
0 : fLocation
.hashCode());
123 * @see java.lang.Object#equals(java.lang.Object)
126 public boolean equals(Object obj
) {
133 if (!(obj
instanceof CtfLocation
)) {
136 CtfLocation other
= (CtfLocation
) obj
;
137 if (fLocation
== null) {
138 if (other
.fLocation
!= null) {
141 } else if (!fLocation
.equals(other
.fLocation
)) {
148 * @see java.lang.Object#toString()
151 public String
toString() {
152 if( this.getLocationInfo().equals(CtfLocation
.INVALID_LOCATION
)) {
153 return "CtfLocation: INVALID"; //$NON-NLS-1$
155 return "CtfLocation: " + getLocationInfo().toString(); //$NON-NLS-1$