1 /*******************************************************************************
2 * Copyright (c) 2009 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made 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
10 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.tmf
.trace
;
15 import org
.eclipse
.linuxtools
.tmf
.event
.TmfTimestamp
;
18 * <b><u>TmfCheckpoint</u></b>
20 * This class maps an event timestamp to a generic location.
22 public class TmfCheckpoint
implements Comparable
<TmfCheckpoint
>, Cloneable
{
24 // ------------------------------------------------------------------------
26 // ------------------------------------------------------------------------
28 private TmfTimestamp fTimestamp
;
29 private ITmfLocation
<?
> fLocation
;
31 // ------------------------------------------------------------------------
33 // ------------------------------------------------------------------------
35 @SuppressWarnings("unused")
36 private TmfCheckpoint() {
42 * @param ts the checkpoint timestamp
43 * @param location the corresponding trace location
45 public TmfCheckpoint(TmfTimestamp ts
, ITmfLocation
<?
> location
) {
51 * Deep copy constructor
52 * @param other the other checkpoint
54 public TmfCheckpoint(TmfCheckpoint other
) {
56 throw new IllegalArgumentException();
57 fTimestamp
= (TmfTimestamp
) other
.fTimestamp
.clone();
58 fLocation
= other
.fLocation
.clone();
61 // ------------------------------------------------------------------------
63 // ------------------------------------------------------------------------
66 * @return the checkpoint timestamp
68 public TmfTimestamp
getTimestamp() {
73 * @return the checkpoint stream location
75 public ITmfLocation
<?
> getLocation() {
79 // ------------------------------------------------------------------------
81 // ------------------------------------------------------------------------
84 public TmfCheckpoint
clone() {
85 TmfCheckpoint result
= null;
87 result
= (TmfCheckpoint
) super.clone();
88 result
.fTimestamp
= new TmfTimestamp(fTimestamp
);
89 result
.fLocation
= fLocation
.clone();
91 } catch (CloneNotSupportedException e
) {
98 public int hashCode() {
99 return fTimestamp
.hashCode();
103 public boolean equals(Object other
) {
104 if (!(other
instanceof TmfCheckpoint
)) {
107 TmfCheckpoint o
= (TmfCheckpoint
) other
;
108 return fTimestamp
.equals(o
.fTimestamp
);
112 public String
toString() {
113 return "[TmfCheckpoint(" + fTimestamp
+ "," + fLocation
+ ")]";
116 // ------------------------------------------------------------------------
118 // ------------------------------------------------------------------------
121 public int compareTo(TmfCheckpoint other
) {
122 return fTimestamp
.compareTo(other
.fTimestamp
, false);