lttng: fix property display of function probe event Bug 419454
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.core / src / org / eclipse / linuxtools / internal / lttng2 / core / control / model / impl / BaseEventInfo.java
... / ...
CommitLineData
1/**********************************************************************
2 * Copyright (c) 2012, 2013 Ericsson
3 *
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
8 *
9 * Contributors:
10 * Bernd Hufmann - Initial API and implementation
11 **********************************************************************/
12package org.eclipse.linuxtools.internal.lttng2.core.control.model.impl;
13
14import java.util.ArrayList;
15import java.util.Iterator;
16import java.util.List;
17
18import org.eclipse.linuxtools.internal.lttng2.core.control.model.IBaseEventInfo;
19import org.eclipse.linuxtools.internal.lttng2.core.control.model.IFieldInfo;
20import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceEventType;
21import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceLogLevel;
22
23/**
24* <p>
25* Implementation of the basic trace event interface (IEventInfo) to store event
26* related data.
27* </p>
28*
29* @author Bernd Hufmann
30*/
31public class BaseEventInfo extends TraceInfo implements IBaseEventInfo {
32
33 // ------------------------------------------------------------------------
34 // Attributes
35 // ------------------------------------------------------------------------
36 /**
37 * The trace event type.
38 */
39 private TraceEventType fEventType = TraceEventType.UNKNOWN;
40 /**
41 * The trace log level.
42 */
43 private TraceLogLevel fLogLevel = TraceLogLevel.TRACE_DEBUG;
44 /**
45 * The Event fields
46 */
47 private final List<IFieldInfo> fFields = new ArrayList<IFieldInfo>();
48 /**
49 * The filter expression.
50 */
51 private String fFilterExpression;
52
53 // ------------------------------------------------------------------------
54 // Constructors
55 // ------------------------------------------------------------------------
56 /**
57 * Constructor
58 * @param name - name of base event
59 */
60 public BaseEventInfo(String name) {
61 super(name);
62 }
63
64 /**
65 * Copy constructor
66 * @param other - the instance to copy
67 */
68 public BaseEventInfo(BaseEventInfo other) {
69 super(other);
70 fEventType = other.fEventType;
71 for (Iterator<IFieldInfo> iterator = other.fFields.iterator(); iterator.hasNext();) {
72 IFieldInfo field = iterator.next();
73 if (field instanceof FieldInfo) {
74 fFields.add(new FieldInfo((FieldInfo)field));
75 } else {
76 fFields.add(field);
77 }
78 }
79 fFilterExpression = other.fFilterExpression;
80 }
81
82 // ------------------------------------------------------------------------
83 // Accessors
84 // ------------------------------------------------------------------------
85
86 @Override
87 public TraceEventType getEventType() {
88 return fEventType;
89 }
90
91 @Override
92 public void setEventType(TraceEventType type) {
93 fEventType = type;
94 }
95
96 @Override
97 public void setEventType(String typeName) {
98 if(TraceEventType.TRACEPOINT.getInName().equals(typeName)) {
99 fEventType = TraceEventType.TRACEPOINT;
100 } else if(TraceEventType.SYSCALL.getInName().equals(typeName)) {
101 fEventType = TraceEventType.SYSCALL;
102 } else if (TraceEventType.PROBE.getInName().equals(typeName)) {
103 fEventType = TraceEventType.PROBE;
104 } else if (TraceEventType.FUNCTION.getInName().equals(typeName)) {
105 fEventType = TraceEventType.FUNCTION;
106 } else {
107 fEventType = TraceEventType.UNKNOWN;
108 }
109 }
110
111 @Override
112 public TraceLogLevel getLogLevel() {
113 return fLogLevel;
114 }
115
116 @Override
117 public void setLogLevel(TraceLogLevel level) {
118 fLogLevel = level;
119 }
120
121 @Override
122 public void setLogLevel(String levelName) {
123 if(TraceLogLevel.TRACE_EMERG.getInName().equals(levelName)) {
124 fLogLevel = TraceLogLevel.TRACE_EMERG;
125 } else if(TraceLogLevel.TRACE_ALERT.getInName().equals(levelName)) {
126 fLogLevel = TraceLogLevel.TRACE_ALERT;
127 } else if(TraceLogLevel.TRACE_CRIT.getInName().equals(levelName)) {
128 fLogLevel = TraceLogLevel.TRACE_CRIT;
129 } else if(TraceLogLevel.TRACE_ERR.getInName().equals(levelName)) {
130 fLogLevel = TraceLogLevel.TRACE_ERR;
131 } else if(TraceLogLevel.TRACE_WARNING.getInName().equals(levelName)) {
132 fLogLevel = TraceLogLevel.TRACE_WARNING;
133 } else if(TraceLogLevel.TRACE_NOTICE.getInName().equals(levelName)) {
134 fLogLevel = TraceLogLevel.TRACE_NOTICE;
135 } else if(TraceLogLevel.TRACE_INFO.getInName().equals(levelName)) {
136 fLogLevel = TraceLogLevel.TRACE_INFO;
137 } else if(TraceLogLevel.TRACE_DEBUG_SYSTEM.getInName().equals(levelName)) {
138 fLogLevel = TraceLogLevel.TRACE_DEBUG_SYSTEM;
139 } else if(TraceLogLevel.TRACE_DEBUG_PROGRAM.getInName().equals(levelName)) {
140 fLogLevel = TraceLogLevel.TRACE_DEBUG_PROGRAM;
141 } else if(TraceLogLevel.TRACE_DEBUG_PROCESS.getInName().equals(levelName)) {
142 fLogLevel = TraceLogLevel.TRACE_DEBUG_PROCESS;
143 } else if(TraceLogLevel.TRACE_DEBUG_MODULE.getInName().equals(levelName)) {
144 fLogLevel = TraceLogLevel.TRACE_DEBUG_MODULE;
145 } else if(TraceLogLevel.TRACE_DEBUG_UNIT.getInName().equals(levelName)) {
146 fLogLevel = TraceLogLevel.TRACE_DEBUG_UNIT;
147 } else if(TraceLogLevel.TRACE_DEBUG_FUNCTION.getInName().equals(levelName)) {
148 fLogLevel = TraceLogLevel.TRACE_DEBUG_FUNCTION;
149 } else if(TraceLogLevel.TRACE_DEBUG_LINE.getInName().equals(levelName)) {
150 fLogLevel = TraceLogLevel.TRACE_DEBUG_LINE;
151 } else if(TraceLogLevel.TRACE_DEBUG.getInName().equals(levelName)) {
152 fLogLevel = TraceLogLevel.TRACE_DEBUG;
153 } else if(TraceLogLevel.LEVEL_UNKNOWN.getInName().equals(levelName)) {
154 fLogLevel = TraceLogLevel.LEVEL_UNKNOWN;
155 } else {
156 fLogLevel = TraceLogLevel.TRACE_DEBUG;
157 }
158 }
159
160 @Override
161 public IFieldInfo[] getFields() {
162 return fFields.toArray(new IFieldInfo[fFields.size()]);
163 }
164
165 @Override
166 public void addField(IFieldInfo field) {
167 fFields.add(field);
168 }
169
170 @Override
171 public void setFields(List<IFieldInfo> fields) {
172 fFields.clear();
173 for (Iterator<IFieldInfo> iterator = fields.iterator(); iterator.hasNext();) {
174 IFieldInfo fieldInfo = iterator.next();
175 fFields.add(fieldInfo);
176 }
177 }
178
179 @Override
180 public String getFilterExpression() {
181 return fFilterExpression;
182 }
183
184 @Override
185 public void setFilterExpression(String filter) {
186 fFilterExpression = filter;
187 }
188
189 @Override
190 public int hashCode() {
191 final int prime = 31;
192 int result = super.hashCode();
193 result = prime * result + ((fEventType == null) ? 0 : fEventType.hashCode());
194 result = prime * result + fFields.hashCode();
195 result = prime * result + ((fFilterExpression == null) ? 0 : fFilterExpression.hashCode());
196 result = prime * result + ((fLogLevel == null) ? 0 : fLogLevel.hashCode());
197 return result;
198 }
199
200 @Override
201 public boolean equals(Object obj) {
202 if (this == obj) {
203 return true;
204 }
205 if (!super.equals(obj)) {
206 return false;
207 }
208 if (getClass() != obj.getClass()) {
209 return false;
210 }
211 BaseEventInfo other = (BaseEventInfo) obj;
212 if (fEventType != other.fEventType) {
213 return false;
214 }
215 if (!fFields.equals(other.fFields)) {
216 return false;
217 }
218 if (fFilterExpression == null) {
219 if (other.fFilterExpression != null) {
220 return false;
221 }
222 } else if (!fFilterExpression.equals(other.fFilterExpression)) {
223 return false;
224 }
225 if (fLogLevel != other.fLogLevel) {
226 return false;
227 }
228 return true;
229 }
230
231 @SuppressWarnings("nls")
232 @Override
233 public String toString() {
234 StringBuffer output = new StringBuffer();
235 output.append("[BaseEventInfo(");
236 output.append(super.toString());
237 output.append(",type=");
238 output.append(fEventType);
239 output.append(",level=");
240 output.append(fLogLevel);
241 if (!fFields.isEmpty()) {
242 output.append(",Fields=");
243 for (Iterator<IFieldInfo> iterator = fFields.iterator(); iterator.hasNext();) {
244 IFieldInfo field = iterator.next();
245 output.append(field.toString());
246 }
247 }
248 if (fFilterExpression != null) {
249 output.append(",Filter=");
250 output.append(fFilterExpression);
251 }
252 output.append(")]");
253 return output.toString();
254 }
255}
This page took 0.023957 seconds and 5 git commands to generate.