tmf: Rename CtfLocationData to CtfLocationInfo
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / tmf / core / ctfadaptor / CtfLocation.java
1 /*******************************************************************************
2 * Copyright (c) 2012 Ericsson
3 *
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
8 *
9 * Contributors: Matthew Khouzam - Initial API and implementation
10 *******************************************************************************/
11 package org.eclipse.linuxtools.tmf.core.ctfadaptor;
12
13 import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
14 import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation;
15
16 /**
17 * The nugget of information that is unique to a location in a CTF trace.
18 *
19 * It can be copied and used to restore a position in a given trace.
20 *
21 * @version 1.0
22 * @author Matthew Khouzam
23 */
24 public final class CtfLocation implements ITmfLocation {
25
26 private final CtfLocationInfo fLocation;
27
28 /**
29 * An invalid location
30 */
31 public static final CtfLocationInfo INVALID_LOCATION = new CtfLocationInfo(-1, -1);
32
33 /**
34 * Constructor for CtfLocation. Uses a default index of 0.
35 *
36 * @param timestamp
37 * The timestamp of this location
38 */
39 public CtfLocation(final ITmfTimestamp timestamp) {
40 this(timestamp.getValue(), 0);
41 }
42
43 /**
44 * Standard constructor
45 *
46 * @param timestamp
47 * The timestamp of this location
48 * @param index
49 * The index of this location for this timestamp
50 * @since 2.0
51 */
52 public CtfLocation(final ITmfTimestamp timestamp, long index) {
53 this(timestamp.getValue(), index);
54 }
55
56 /**
57 * Change this location's timestamp and index values.
58 *
59 * @param timestampValue
60 * The new timestamp
61 * @param index
62 * The new index
63 * @since 2.0
64 */
65 public CtfLocation(final long timestampValue, final long index) {
66 this(new CtfLocationInfo(timestampValue, index));
67 }
68
69 /**
70 * Copy constructor
71 *
72 * @param location
73 * Other location to copy
74 * @since 2.0
75 */
76 public CtfLocation(final CtfLocationInfo location) {
77 fLocation = location;
78 }
79
80 /**
81 * Get the Location Data of this location
82 *
83 * @return The CtfLocationData
84 * @see org.eclipse.linuxtools.tmf.core.trace.ITmfLocation#getLocationInfo()
85 * @since 2.0
86 */
87 @Override
88 public CtfLocationInfo getLocationInfo() {
89 return fLocation;
90 }
91
92 @Override
93 public CtfLocation clone() {
94 return new CtfLocation(new CtfLocationInfo(fLocation.getTimestamp(), fLocation.getIndex()));
95 }
96
97
98 /* (non-Javadoc)
99 * @see java.lang.Object#hashCode()
100 */
101 @Override
102 public int hashCode() {
103 final int prime = 31;
104 int result = 1;
105 result = (prime * result)
106 + ((fLocation == null) ? 0 : fLocation.hashCode());
107 return result;
108 }
109
110 /* (non-Javadoc)
111 * @see java.lang.Object#equals(java.lang.Object)
112 */
113 @Override
114 public boolean equals(Object obj) {
115 if (this == obj) {
116 return true;
117 }
118 if (obj == null) {
119 return false;
120 }
121 if (!(obj instanceof CtfLocation)) {
122 return false;
123 }
124 CtfLocation other = (CtfLocation) obj;
125 if (fLocation == null) {
126 if (other.fLocation != null) {
127 return false;
128 }
129 } else if (!fLocation.equals(other.fLocation)) {
130 return false;
131 }
132 return true;
133 }
134
135 /* (non-Javadoc)
136 * @see java.lang.Object#toString()
137 */
138 @Override
139 public String toString() {
140 if( this.getLocationInfo().equals(CtfLocation.INVALID_LOCATION )) {
141 return "CtfLocation: INVALID"; //$NON-NLS-1$
142 }
143 return "CtfLocation: " + getLocationInfo().toString(); //$NON-NLS-1$
144 }
145
146 }
This page took 0.038023 seconds and 6 git commands to generate.