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
) {
38 this(location
, UNKNOWN_RANK
);
41 public TmfContext(TmfContext other
) {
42 this(other
.fLocation
, other
.fRank
);
46 this(null, UNKNOWN_RANK
);
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
) {
74 public boolean isValidRank() {
75 return fRank
!= UNKNOWN_RANK
;
78 // ------------------------------------------------------------------------
80 // ------------------------------------------------------------------------
83 public int hashCode() {
85 result
= 37 * result
+ fLocation
.hashCode();
86 result
= 37 * result
+ (int) (fRank ^
(fRank
>>> 32));
91 public boolean equals(Object other
) {
95 if (!(other
instanceof TmfContext
)) {
98 TmfContext o
= (TmfContext
) other
;
99 return fLocation
.equals(o
.fLocation
) && (fRank
== o
.fRank
);
103 public String
toString() {
104 return "[TmfContext(" + fLocation
.toString() + "," + fRank
+ ")]";
108 public TmfContext
clone() {
109 TmfContext clone
= null;
111 clone
= (TmfContext
) super.clone();
112 clone
.fLocation
= fLocation
.clone();
114 } catch (CloneNotSupportedException e
) {