2010-11-10 Francois Chouinard <fchouinard@gmail.com> Contribution for Bug315307
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui / src / org / eclipse / linuxtools / lttng / ui / model / trange / TimeRangeEvent.java
CommitLineData
6e512b93
ASL
1/*******************************************************************************\r
2 * Copyright (c) 2009 Ericsson\r
3 * \r
4 * All rights reserved. This program and the accompanying materials are\r
5 * made available under the terms of the Eclipse Public License v1.0 which\r
6 * accompanies this distribution, and is available at\r
7 * http://www.eclipse.org/legal/epl-v10.html\r
8 * \r
9 * Contributors:\r
10 * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation\r
11 *******************************************************************************/\r
12\r
13package org.eclipse.linuxtools.lttng.ui.model.trange;\r
14\r
15import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITimeEvent;\r
16import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITmfTimeAnalysisEntry;\r
17\r
18/**\r
19 * @author alvaro\r
20 * \r
21 */\r
22public class TimeRangeEvent extends TimeRangeComponent implements ITimeEvent {\r
23 // =======================================================================\r
24 // Data\r
25 // =======================================================================\r
26 TimeRangeComposite parent = null;\r
27\r
28 public static enum Type {\r
29 UNKNOWN, PROPERTY, PROCESS_MODE, BDEV_MODE, TRAP_MODE, SOFT_IRQ_MODE, IRQ_MODE, CPU_MODE\r
30 }\r
31\r
32 protected Type eventType = Type.UNKNOWN;\r
9c4eb5f7 33 protected String stateMode = ""; //$NON-NLS-1$\r
6e512b93
ASL
34\r
35 // =======================================================================\r
36 // Constructors\r
37 // =======================================================================\r
38 /**\r
39 * @param stime\r
40 * Event Start Time (may be unknown)\r
41 * @param etime\r
42 * Event EndTime (may be unknown)\r
43 * @param eventParent\r
44 * @param type\r
45 * @param duration\r
46 */\r
47 public TimeRangeEvent(Long stime, Long etime,\r
48 TimeRangeComposite eventParent, Type type, String stateMode) {\r
49 super(stime, etime, eventParent);\r
50\r
51 this.eventType = type;\r
52 this.stateMode = stateMode;\r
53 }\r
54\r
55 // =======================================================================\r
56 // Methods\r
57 // =======================================================================\r
58 \r
59 // @Override\r
60 /*\r
61 * (non-Javadoc)\r
62 * \r
63 * @see\r
64 * org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITimeEvent#getTime\r
65 * ()\r
66 */\r
d4011df2 67 @Override\r
6e512b93
ASL
68 public long getTime() {\r
69 // The value provided by this method is used to start drawing the\r
70 // time-range,\r
71 // so a null value shall not be provided.\r
72 // If the actual start time is unknown then use the start of the Trace\r
73 // as the\r
74 // starting reference point.\r
75 if (startTime == null) {\r
76 return eventParent.getStartTime();\r
77 }\r
78 return startTime;\r
79 }\r
80\r
81 /*\r
82 * (non-Javadoc)\r
83 * \r
84 * @see\r
85 * org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITimeEvent#getEntry\r
86 * ()\r
87 */\r
d4011df2 88 @Override\r
6e512b93
ASL
89 public ITmfTimeAnalysisEntry getEntry() {\r
90 return parent;\r
91 }\r
92\r
93 /**\r
94 * return the duration between end and start time , if the start time or end\r
95 * time are unknown, use the Trace start and End times to estimate it, this\r
96 * value will be used to draw the time range and need to provide a valid\r
97 * time width.\r
98 * \r
99 * @return the duration\r
100 */\r
101 /*\r
102 * (non-Javadoc)\r
103 * \r
104 * @seeorg.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITimeEvent#\r
105 * getDuration()\r
106 */\r
d4011df2 107 @Override\r
6e512b93
ASL
108 public long getDuration() {\r
109 long duration = -1;\r
110 long endT = (stopTime == null) ? parent.getStopTime() : stopTime;\r
111 long startT = (startTime == null) ? parent.getStartTime() : startTime;\r
112\r
113 if (endT > startT) {\r
114 return stopTime - startTime;\r
115 }\r
116 return duration;\r
117 }\r
118\r
119 /**\r
120 * @return\r
121 */\r
122 public String getStateMode() {\r
123 return stateMode;\r
124 }\r
125\r
126 /**\r
127 * @param stateMode\r
128 */\r
129 public void setStateMode(String stateMode) {\r
130 if (stateMode != null) {\r
131 this.stateMode = stateMode;\r
132 }\r
133 }\r
134\r
135 /*\r
136 * (non-Javadoc)\r
137 * \r
138 * @see org.eclipse.linuxtools.lttng.ui.model.ITimeRangeComponent#getName()\r
139 */\r
140 @Override\r
141 public String getName() {\r
142 return stateMode;\r
143 }\r
144\r
145 /**\r
146 * @return\r
147 */\r
148 public Type getEventType() {\r
149 return eventType;\r
150 }\r
151\r
152 /**\r
153 * @param eventType\r
154 */\r
155 public void setEventType(Type eventType) {\r
156 this.eventType = eventType;\r
157 }\r
158\r
159}\r
This page took 0.034924 seconds and 5 git commands to generate.