tmf/lttng: Update 2014 copyrights
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.core / src / org / eclipse / linuxtools / internal / lttng2 / core / control / model / impl / BaseEventInfo.java
CommitLineData
eb1bab5b 1/**********************************************************************
60ae41e1 2 * Copyright (c) 2012, 2014 Ericsson
d4514365 3 *
eb1bab5b
BH
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
d4514365
BH
8 *
9 * Contributors:
eb1bab5b
BH
10 * Bernd Hufmann - Initial API and implementation
11 **********************************************************************/
9315aeee 12package org.eclipse.linuxtools.internal.lttng2.core.control.model.impl;
eb1bab5b 13
d4514365
BH
14import java.util.ArrayList;
15import java.util.Iterator;
16import java.util.List;
17
9315aeee 18import org.eclipse.linuxtools.internal.lttng2.core.control.model.IBaseEventInfo;
d4514365 19import org.eclipse.linuxtools.internal.lttng2.core.control.model.IFieldInfo;
9315aeee
BH
20import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceEventType;
21import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceLogLevel;
eb1bab5b
BH
22
23/**
eb1bab5b
BH
24* <p>
25* Implementation of the basic trace event interface (IEventInfo) to store event
d4514365 26* related data.
eb1bab5b 27* </p>
d4514365 28*
dbd4432d 29* @author Bernd Hufmann
eb1bab5b
BH
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 */
4775bcbf 43 private TraceLogLevel fLogLevel = TraceLogLevel.TRACE_DEBUG;
d4514365
BH
44 /**
45 * The Event fields
46 */
e0838ca1 47 private final List<IFieldInfo> fFields = new ArrayList<>();
d4514365
BH
48 /**
49 * The filter expression.
50 */
51 private String fFilterExpression;
52
eb1bab5b
BH
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;
77fdc5df
AM
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);
d4514365
BH
77 }
78 }
79 fFilterExpression = other.fFilterExpression;
eb1bab5b
BH
80 }
81
82 // ------------------------------------------------------------------------
83 // Accessors
84 // ------------------------------------------------------------------------
11252342 85
eb1bab5b
BH
86 @Override
87 public TraceEventType getEventType() {
88 return fEventType;
89 }
90
eb1bab5b
BH
91 @Override
92 public void setEventType(TraceEventType type) {
93 fEventType = type;
94 }
95
eb1bab5b
BH
96 @Override
97 public void setEventType(String typeName) {
98 if(TraceEventType.TRACEPOINT.getInName().equals(typeName)) {
99 fEventType = TraceEventType.TRACEPOINT;
3e91c9c0
BH
100 } else if(TraceEventType.SYSCALL.getInName().equals(typeName)) {
101 fEventType = TraceEventType.SYSCALL;
ccc66d01 102 } else if (TraceEventType.PROBE.getInName().equals(typeName)) {
d4514365 103 fEventType = TraceEventType.PROBE;
1f07c96c
BH
104 } else if (TraceEventType.FUNCTION.getInName().equals(typeName)) {
105 fEventType = TraceEventType.FUNCTION;
ccc66d01 106 } else {
eb1bab5b
BH
107 fEventType = TraceEventType.UNKNOWN;
108 }
109 }
110
eb1bab5b
BH
111 @Override
112 public TraceLogLevel getLogLevel() {
113 return fLogLevel;
114 }
115
eb1bab5b
BH
116 @Override
117 public void setLogLevel(TraceLogLevel level) {
118 fLogLevel = level;
119 }
120
eb1bab5b
BH
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;
4775bcbf
BH
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;
eb1bab5b
BH
151 } else if(TraceLogLevel.TRACE_DEBUG.getInName().equals(levelName)) {
152 fLogLevel = TraceLogLevel.TRACE_DEBUG;
4775bcbf
BH
153 } else if(TraceLogLevel.LEVEL_UNKNOWN.getInName().equals(levelName)) {
154 fLogLevel = TraceLogLevel.LEVEL_UNKNOWN;
eb1bab5b 155 } else {
4775bcbf 156 fLogLevel = TraceLogLevel.TRACE_DEBUG;
eb1bab5b
BH
157 }
158 }
d4514365 159
d4514365
BH
160 @Override
161 public IFieldInfo[] getFields() {
162 return fFields.toArray(new IFieldInfo[fFields.size()]);
163 }
164
d4514365
BH
165 @Override
166 public void addField(IFieldInfo field) {
167 fFields.add(field);
168 }
169
d4514365
BH
170 @Override
171 public void setFields(List<IFieldInfo> fields) {
a6702bfa 172 fFields.clear();
d4514365
BH
173 for (Iterator<IFieldInfo> iterator = fields.iterator(); iterator.hasNext();) {
174 IFieldInfo fieldInfo = iterator.next();
175 fFields.add(fieldInfo);
176 }
177 }
178
d4514365
BH
179 @Override
180 public String getFilterExpression() {
181 return fFilterExpression;
182 }
183
d4514365
BH
184 @Override
185 public void setFilterExpression(String filter) {
186 fFilterExpression = filter;
187 }
188
eb1bab5b
BH
189 @Override
190 public int hashCode() {
d132bcc7
BH
191 final int prime = 31;
192 int result = super.hashCode();
d4514365 193 result = prime * result + ((fEventType == null) ? 0 : fEventType.hashCode());
77fdc5df 194 result = prime * result + fFields.hashCode();
d4514365
BH
195 result = prime * result + ((fFilterExpression == null) ? 0 : fFilterExpression.hashCode());
196 result = prime * result + ((fLogLevel == null) ? 0 : fLogLevel.hashCode());
eb1bab5b 197 return result;
d4514365 198 }
eb1bab5b 199
eb1bab5b 200 @Override
d132bcc7
BH
201 public boolean equals(Object obj) {
202 if (this == obj) {
203 return true;
204 }
205 if (!super.equals(obj)) {
eb1bab5b
BH
206 return false;
207 }
d132bcc7 208 if (getClass() != obj.getClass()) {
eb1bab5b
BH
209 return false;
210 }
d132bcc7
BH
211 BaseEventInfo other = (BaseEventInfo) obj;
212 if (fEventType != other.fEventType) {
eb1bab5b
BH
213 return false;
214 }
77fdc5df 215 if (!fFields.equals(other.fFields)) {
d4514365
BH
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 }
d132bcc7 225 if (fLogLevel != other.fLogLevel) {
eb1bab5b
BH
226 return false;
227 }
228 return true;
d4514365 229 }
eb1bab5b 230
eb1bab5b
BH
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);
77fdc5df 241 if (!fFields.isEmpty()) {
d4514365
BH
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 }
eb1bab5b
BH
252 output.append(")]");
253 return output.toString();
254 }
a6702bfa 255}
This page took 0.053552 seconds and 5 git commands to generate.