1 /*******************************************************************************
2 * Copyright (c) 2009, 2010 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
;
17 * <b><u>TmfContext</u></b>
19 * Trace context structure. It ties a trace location to an event rank. The
20 * context should be enough to restore the trace state so the corresponding
23 public class TmfContext
implements ITmfContext
, Cloneable
{
25 private ITmfLocation
<?
> fLocation
;
28 // ------------------------------------------------------------------------
30 // ------------------------------------------------------------------------
32 public TmfContext(ITmfLocation
<?
> loc
, long rank
) {
37 public TmfContext(ITmfLocation
<?
> location
) {
41 public TmfContext(TmfContext other
) {
42 this(other
.fLocation
, other
.fRank
);
49 // ------------------------------------------------------------------------
51 // ------------------------------------------------------------------------
53 public void setLocation(ITmfLocation
<?
> location
) {
57 public ITmfLocation
<?
> getLocation() {
61 public void setRank(long rank
) {
65 public long getRank() {
69 public void updateRank(int delta
) {
70 if (fRank
!= UNKNOWN_RANK
)
74 // ------------------------------------------------------------------------
76 // ------------------------------------------------------------------------
79 public int hashCode() {
81 result
= 37 * result
+ fLocation
.hashCode();
82 result
= 37 * result
+ (int) (fRank ^
(fRank
>>> 32));
87 public boolean equals(Object other
) {
88 if (!(other
instanceof TmfContext
)) {
91 TmfContext o
= (TmfContext
) other
;
92 return fLocation
.equals(o
.fLocation
) && (fRank
== o
.fRank
);
96 public String
toString() {
97 return "[TmfContext(" + fLocation
.toString() + "," + fRank
+ ")]";
101 public TmfContext
clone() {
102 TmfContext clone
= null;
104 clone
= (TmfContext
) super.clone();
105 clone
.fLocation
= fLocation
.clone();
107 } catch (CloneNotSupportedException e
) {