tmf: Use tabs in statistics view for each traces
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.core / src / org / eclipse / linuxtools / internal / lttng / core / event / LttngSyntheticEvent.java
CommitLineData
5d10d135
ASL
1/*******************************************************************************
2 * Copyright (c) 2009, 2010 Ericsson
0c32e4c5 3 *
5d10d135
ASL
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
0c32e4c5 8 *
5d10d135
ASL
9 * Contributors:
10 * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation
11 *******************************************************************************/
5945cec9 12package org.eclipse.linuxtools.internal.lttng.core.event;
5d10d135 13
5945cec9 14import org.eclipse.linuxtools.internal.lttng.core.state.model.LttngTraceState;
5d10d135 15import org.eclipse.linuxtools.lttng.jni.JniEvent;
0c32e4c5 16import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
6c13869b 17import org.eclipse.linuxtools.tmf.core.trace.TmfTrace;
5d10d135
ASL
18
19/**
20 * @author alvaro
0c32e4c5 21 *
5d10d135
ASL
22 */
23public class LttngSyntheticEvent extends LttngEvent {
24
25 public static final LttngSyntheticEvent NullEvent = new LttngSyntheticEvent();
26
27 // ======================================================================+
28 // Data
29 // =======================================================================
30 /**
31 * <p>
32 * BEFORE: Before the update to the state system
33 * </p>
34 * <p>
35 * UPDATE: Proceed to update the state system
36 * </p>
37 * <p>
38 * AFTER: After the update of the state system
39 * </p>
40 * <p>
41 * ACK: Acknowledge indicator for any of the previous sequences
42 * </p>
43 */
44 public enum SequenceInd {
0c2a2e08 45 STARTREQ, BEFORE, UPDATE, AFTER, ENDREQ
5d10d135
ASL
46 };
47
48 private SequenceInd sequence = SequenceInd.BEFORE;
49 private LttngEvent baseEvent = null;
50 private LttngTraceState fTraceModel = null;
51 // ======================================================================+
52 // Constructors
53 // =======================================================================
54 /**
55 * @param baseEvent
56 */
0c32e4c5 57 public LttngSyntheticEvent(ITmfEvent baseEvent) {
5d10d135 58 super(baseEvent);
0c32e4c5 59 this.baseEvent = (LttngEvent) baseEvent;
5d10d135
ASL
60 }
61
62 /**
63 * @param parent
64 * @param timestamp
65 * @param source
66 * @param type
67 * @param content
68 * @param reference
69 * @param lttEvent
70 */
0c32e4c5 71 public LttngSyntheticEvent(TmfTrace parent,
99005796 72 LttngTimestamp timestamp, String source,
5d10d135 73 LttngEventType type, LttngEventContent content,
4641c2f7 74 String reference, JniEvent lttEvent) {
5d10d135
ASL
75 super(parent, timestamp, source, type, content, reference, lttEvent);
76 }
77
78 private LttngSyntheticEvent() {
79 this(null, null, null, null, null, null, null);
80 }
81
82 // ======================================================================+
83 // Methods
84 // =======================================================================
85
86 /**
87 * @return the sequence indicator
88 */
89 public SequenceInd getSynType() {
90 return sequence;
91 }
92
93 /**
94 * @param type
95 * the sequence indicator to set
96 */
97 public void setSequenceInd(SequenceInd sequence) {
98 this.sequence = sequence;
99 }
100
101 /**
102 * @return the baseEvent
103 */
104 public LttngEvent getBaseEvent() {
105 return baseEvent;
106 }
107
108 /**
109 * @param traceModel
110 * the trace state-data-model associated to this event
111 */
112 public void setTraceModel(LttngTraceState traceModel) {
113 this.fTraceModel = traceModel;
114 }
115
116 /**
117 * @return the traceModel
118 */
119 public LttngTraceState getTraceModel() {
120 return fTraceModel;
121 }
122
123 /**
124 * /* (non-Javadoc)
0c32e4c5 125 *
5945cec9 126 * @see org.eclipse.linuxtools.internal.lttng.core.event.LttngEvent#getTrace()
5d10d135 127 */
2c8610f7 128 @Override
0c32e4c5 129 public TmfTrace getTrace() {
5d10d135 130 if (baseEvent != null) {
0c32e4c5 131 return (TmfTrace) baseEvent.getTrace();
5d10d135 132 } else {
0c32e4c5 133 return (TmfTrace) super.getTrace();
5d10d135
ASL
134 }
135 }
136
137 /*
138 * (non-Javadoc)
0c32e4c5 139 *
5d10d135
ASL
140 * @see
141 * org.eclipse.linuxtools.lttng.event.LttngEvent#setParentTrace(org.eclipse
142 * .linuxtools.tmf.trace.TmfTrace)
143 */
550d787e 144 @Override
0c32e4c5 145 public void setParentTrace(TmfTrace parentTrace) {
5d10d135
ASL
146 if (baseEvent != null) {
147 baseEvent.setParentTrace(parentTrace);
148 } else {
149 super.setParentTrace(parentTrace);
150 }
151 }
152
153 /*
154 * (non-Javadoc)
0c32e4c5 155 *
5d10d135
ASL
156 * @see org.eclipse.linuxtools.lttng.event.LttngEvent#getChannelName()
157 */
550d787e 158 @Override
5d10d135
ASL
159 public String getChannelName() {
160 if (baseEvent != null) {
161 return baseEvent.getChannelName();
162 } else {
163 return super.getChannelName();
164 }
165 }
166
167 /*
168 * (non-Javadoc)
0c32e4c5 169 *
5d10d135
ASL
170 * @see org.eclipse.linuxtools.lttng.event.LttngEvent#getCpuId()
171 */
550d787e 172 @Override
5d10d135
ASL
173 public long getCpuId() {
174 if (baseEvent != null) {
175 return baseEvent.getCpuId();
176 } else {
177 return super.getCpuId();
178 }
179 }
180
181 /*
182 * (non-Javadoc)
0c32e4c5 183 *
5d10d135
ASL
184 * @see org.eclipse.linuxtools.lttng.event.LttngEvent#getMarkerName()
185 */
550d787e 186 @Override
5d10d135
ASL
187 public String getMarkerName() {
188 if (baseEvent != null) {
189 return baseEvent.getMarkerName();
190 } else {
191 return super.getMarkerName();
192 }
193 }
194
195 /*
196 * (non-Javadoc)
0c32e4c5 197 *
5d10d135
ASL
198 * @see org.eclipse.linuxtools.lttng.event.LttngEvent#getContent()
199 */
550d787e 200 @Override
5d10d135
ASL
201 public LttngEventContent getContent() {
202 if (baseEvent != null) {
203 return baseEvent.getContent();
204 } else {
205 return super.getContent();
206 }
207 }
208
209 /*
210 * (non-Javadoc)
0c32e4c5 211 *
5d10d135
ASL
212 * @see
213 * org.eclipse.linuxtools.lttng.event.LttngEvent#setContent(org.eclipse.
214 * linuxtools.lttng.event.LttngEventContent)
215 */
550d787e 216 @Override
5d10d135
ASL
217 public void setContent(LttngEventContent newContent) {
218 if (baseEvent != null) {
219 baseEvent.setContent(newContent);
220 } else {
221 super.setContent(newContent);
222 }
223 }
224
225 /*
226 * (non-Javadoc)
0c32e4c5 227 *
5d10d135
ASL
228 * @see org.eclipse.linuxtools.lttng.event.LttngEvent#getType()
229 */
550d787e 230 @Override
5d10d135
ASL
231 public LttngEventType getType() {
232 if (baseEvent != null) {
233 return baseEvent.getType();
234 } else {
235 return super.getType();
236 }
237 }
238
239 /*
240 * (non-Javadoc)
0c32e4c5 241 *
5d10d135
ASL
242 * @see
243 * org.eclipse.linuxtools.lttng.event.LttngEvent#setType(org.eclipse.linuxtools
244 * .lttng.event.LttngEventType)
245 */
550d787e 246 @Override
5d10d135
ASL
247 public void setType(LttngEventType newType) {
248 if (baseEvent != null) {
249 baseEvent.setType(newType);
250 } else {
251 super.setType(newType);
252 }
253 }
254
255 /*
256 * (non-Javadoc)
0c32e4c5 257 *
5d10d135
ASL
258 * @see
259 * org.eclipse.linuxtools.lttng.event.LttngEvent#updateJniEventReference
260 * (org.eclipse.linuxtools.lttng.jni.JniEvent)
261 */
550d787e 262 @Override
5d10d135
ASL
263 public void updateJniEventReference(JniEvent newJniEventReference) {
264 if (baseEvent != null) {
265 baseEvent.updateJniEventReference(newJniEventReference);
266 } else {
267 super.updateJniEventReference(newJniEventReference);
268 }
269 }
270
271 /*
272 * (non-Javadoc)
0c32e4c5 273 *
5d10d135
ASL
274 * @see org.eclipse.linuxtools.lttng.event.LttngEvent#convertEventTmfToJni()
275 */
550d787e 276 @Override
5d10d135
ASL
277 public JniEvent convertEventTmfToJni() {
278 if (baseEvent != null) {
279 return baseEvent.convertEventTmfToJni();
280 } else {
281 return super.convertEventTmfToJni();
282 }
283 }
284
5d10d135
ASL
285 /*
286 * (non-Javadoc)
0c32e4c5 287 *
5d10d135
ASL
288 * @see org.eclipse.linuxtools.lttng.event.LttngEvent#toString()
289 */
550d787e 290 @Override
5d10d135
ASL
291 public String toString() {
292 if (baseEvent != null) {
293 return baseEvent.toString();
294 } else {
295 return super.toString();
296 }
297 }
212550ba
FC
298
299 /* (non-Javadoc)
300 * @see java.lang.Object#hashCode()
301 */
302 @Override
303 public int hashCode() {
304 final int prime = 31;
305 int result = super.hashCode();
306 result = prime * result + ((baseEvent == null) ? 0 : baseEvent.hashCode());
307 result = prime * result + ((fTraceModel == null) ? 0 : fTraceModel.hashCode());
308 result = prime * result + ((sequence == null) ? 0 : sequence.hashCode());
309 return result;
310 }
311
312 /* (non-Javadoc)
313 * @see java.lang.Object#equals(java.lang.Object)
314 */
315 @Override
316 public boolean equals(Object obj) {
317 if (this == obj) {
318 return true;
319 }
320 if (!super.equals(obj)) {
321 return false;
322 }
323 if (!(obj instanceof LttngSyntheticEvent)) {
324 return false;
325 }
326 LttngSyntheticEvent other = (LttngSyntheticEvent) obj;
327 if (baseEvent == null) {
328 if (other.baseEvent != null) {
329 return false;
330 }
331 } else if (!baseEvent.equals(other.baseEvent)) {
332 return false;
333 }
334 if (fTraceModel == null) {
335 if (other.fTraceModel != null) {
336 return false;
337 }
338 } else if (!fTraceModel.equals(other.fTraceModel)) {
339 return false;
340 }
341 if (sequence != other.sequence) {
342 return false;
343 }
344 return true;
345 }
346
5d10d135 347}
This page took 0.05007 seconds and 5 git commands to generate.