1 /**********************************************************************
2 * Copyright (c) 2012, 2013 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 * Bernd Hufmann - Initial API and implementation
11 **********************************************************************/
12 package org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.impl
;
14 import java
.util
.ArrayList
;
15 import java
.util
.Iterator
;
16 import java
.util
.List
;
18 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IBaseEventInfo
;
19 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IFieldInfo
;
20 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceEventType
;
21 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceLogLevel
;
25 * Implementation of the basic trace event interface (IEventInfo) to store event
29 * @author Bernd Hufmann
31 public class BaseEventInfo
extends TraceInfo
implements IBaseEventInfo
{
33 // ------------------------------------------------------------------------
35 // ------------------------------------------------------------------------
37 * The trace event type.
39 private TraceEventType fEventType
= TraceEventType
.UNKNOWN
;
41 * The trace log level.
43 private TraceLogLevel fLogLevel
= TraceLogLevel
.TRACE_DEBUG
;
47 private final List
<IFieldInfo
> fFields
= new ArrayList
<IFieldInfo
>();
49 * The filter expression.
51 private String fFilterExpression
;
53 // ------------------------------------------------------------------------
55 // ------------------------------------------------------------------------
58 * @param name - name of base event
60 public BaseEventInfo(String name
) {
66 * @param other - the instance to copy
68 public BaseEventInfo(BaseEventInfo 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
));
79 fFilterExpression
= other
.fFilterExpression
;
82 // ------------------------------------------------------------------------
84 // ------------------------------------------------------------------------
87 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.IBaseEventInfo#getEventType()
90 public TraceEventType
getEventType() {
96 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.IBaseEventInfo#setEventType(org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.TraceEventType)
99 public void setEventType(TraceEventType type
) {
105 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.IBaseEventInfo#setEventType(java.lang.String)
108 public void setEventType(String typeName
) {
109 if(TraceEventType
.TRACEPOINT
.getInName().equals(typeName
)) {
110 fEventType
= TraceEventType
.TRACEPOINT
;
111 } else if(TraceEventType
.SYSCALL
.getInName().equals(typeName
)) {
112 fEventType
= TraceEventType
.SYSCALL
;
113 } else if (TraceEventType
.PROBE
.getInName().equals(typeName
)) {
114 fEventType
= TraceEventType
.PROBE
;
116 fEventType
= TraceEventType
.UNKNOWN
;
122 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.IBaseEventInfo#getLogLevel()
125 public TraceLogLevel
getLogLevel() {
131 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.IBaseEventInfo#setLogLevel(org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.TraceLogLevel)
134 public void setLogLevel(TraceLogLevel level
) {
140 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.IBaseEventInfo#setLogLevel(java.lang.String)
143 public void setLogLevel(String levelName
) {
144 if(TraceLogLevel
.TRACE_EMERG
.getInName().equals(levelName
)) {
145 fLogLevel
= TraceLogLevel
.TRACE_EMERG
;
146 } else if(TraceLogLevel
.TRACE_ALERT
.getInName().equals(levelName
)) {
147 fLogLevel
= TraceLogLevel
.TRACE_ALERT
;
148 } else if(TraceLogLevel
.TRACE_CRIT
.getInName().equals(levelName
)) {
149 fLogLevel
= TraceLogLevel
.TRACE_CRIT
;
150 } else if(TraceLogLevel
.TRACE_ERR
.getInName().equals(levelName
)) {
151 fLogLevel
= TraceLogLevel
.TRACE_ERR
;
152 } else if(TraceLogLevel
.TRACE_WARNING
.getInName().equals(levelName
)) {
153 fLogLevel
= TraceLogLevel
.TRACE_WARNING
;
154 } else if(TraceLogLevel
.TRACE_NOTICE
.getInName().equals(levelName
)) {
155 fLogLevel
= TraceLogLevel
.TRACE_NOTICE
;
156 } else if(TraceLogLevel
.TRACE_INFO
.getInName().equals(levelName
)) {
157 fLogLevel
= TraceLogLevel
.TRACE_INFO
;
158 } else if(TraceLogLevel
.TRACE_DEBUG_SYSTEM
.getInName().equals(levelName
)) {
159 fLogLevel
= TraceLogLevel
.TRACE_DEBUG_SYSTEM
;
160 } else if(TraceLogLevel
.TRACE_DEBUG_PROGRAM
.getInName().equals(levelName
)) {
161 fLogLevel
= TraceLogLevel
.TRACE_DEBUG_PROGRAM
;
162 } else if(TraceLogLevel
.TRACE_DEBUG_PROCESS
.getInName().equals(levelName
)) {
163 fLogLevel
= TraceLogLevel
.TRACE_DEBUG_PROCESS
;
164 } else if(TraceLogLevel
.TRACE_DEBUG_MODULE
.getInName().equals(levelName
)) {
165 fLogLevel
= TraceLogLevel
.TRACE_DEBUG_MODULE
;
166 } else if(TraceLogLevel
.TRACE_DEBUG_UNIT
.getInName().equals(levelName
)) {
167 fLogLevel
= TraceLogLevel
.TRACE_DEBUG_UNIT
;
168 } else if(TraceLogLevel
.TRACE_DEBUG_FUNCTION
.getInName().equals(levelName
)) {
169 fLogLevel
= TraceLogLevel
.TRACE_DEBUG_FUNCTION
;
170 } else if(TraceLogLevel
.TRACE_DEBUG_LINE
.getInName().equals(levelName
)) {
171 fLogLevel
= TraceLogLevel
.TRACE_DEBUG_LINE
;
172 } else if(TraceLogLevel
.TRACE_DEBUG
.getInName().equals(levelName
)) {
173 fLogLevel
= TraceLogLevel
.TRACE_DEBUG
;
174 } else if(TraceLogLevel
.LEVEL_UNKNOWN
.getInName().equals(levelName
)) {
175 fLogLevel
= TraceLogLevel
.LEVEL_UNKNOWN
;
177 fLogLevel
= TraceLogLevel
.TRACE_DEBUG
;
183 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.IBaseEventInfo#getFields()
186 public IFieldInfo
[] getFields() {
187 return fFields
.toArray(new IFieldInfo
[fFields
.size()]);
192 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.IBaseEventInfo#addField(org.eclipse.linuxtools.internal.lttng2.core.control.model.IFieldInfo)
195 public void addField(IFieldInfo field
) {
201 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.IBaseEventInfo#setFields(java.util.List)
204 public void setFields(List
<IFieldInfo
> fields
) {
206 for (Iterator
<IFieldInfo
> iterator
= fields
.iterator(); iterator
.hasNext();) {
207 IFieldInfo fieldInfo
= iterator
.next();
208 fFields
.add(fieldInfo
);
214 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.IBaseEventInfo#getFilterExpression()
217 public String
getFilterExpression() {
218 return fFilterExpression
;
223 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.IBaseEventInfo#setFilterExpression(java.lang.String)
226 public void setFilterExpression(String filter
) {
227 fFilterExpression
= filter
;
233 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.TraceInfo#hashCode()
236 public int hashCode() {
237 final int prime
= 31;
238 int result
= super.hashCode();
239 result
= prime
* result
+ ((fEventType
== null) ?
0 : fEventType
.hashCode());
240 result
= prime
* result
+ fFields
.hashCode();
241 result
= prime
* result
+ ((fFilterExpression
== null) ?
0 : fFilterExpression
.hashCode());
242 result
= prime
* result
+ ((fLogLevel
== null) ?
0 : fLogLevel
.hashCode());
248 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.TraceInfo#equals(java.lang.Object)
251 public boolean equals(Object obj
) {
255 if (!super.equals(obj
)) {
258 if (getClass() != obj
.getClass()) {
261 BaseEventInfo other
= (BaseEventInfo
) obj
;
262 if (fEventType
!= other
.fEventType
) {
265 if (!fFields
.equals(other
.fFields
)) {
268 if (fFilterExpression
== null) {
269 if (other
.fFilterExpression
!= null) {
272 } else if (!fFilterExpression
.equals(other
.fFilterExpression
)) {
275 if (fLogLevel
!= other
.fLogLevel
) {
283 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceInfo#toString()
285 @SuppressWarnings("nls")
287 public String
toString() {
288 StringBuffer output
= new StringBuffer();
289 output
.append("[BaseEventInfo(");
290 output
.append(super.toString());
291 output
.append(",type=");
292 output
.append(fEventType
);
293 output
.append(",level=");
294 output
.append(fLogLevel
);
295 if (!fFields
.isEmpty()) {
296 output
.append(",Fields=");
297 for (Iterator
<IFieldInfo
> iterator
= fFields
.iterator(); iterator
.hasNext();) {
298 IFieldInfo field
= iterator
.next();
299 output
.append(field
.toString());
302 if (fFilterExpression
!= null) {
303 output
.append(",Filter=");
304 output
.append(fFilterExpression
);
307 return output
.toString();