pcap: Rename packages to org.eclipse.tracecompass.*
[deliverable/tracecompass.git] / org.eclipse.tracecompass.lttng2.control.core / src / org / eclipse / linuxtools / internal / lttng2 / control / core / 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 **********************************************************************/
8e8c0226 12package org.eclipse.linuxtools.internal.lttng2.control.core.model.impl;
eb1bab5b 13
d4514365
BH
14import java.util.ArrayList;
15import java.util.Iterator;
16import java.util.List;
17
8e8c0226
AM
18import org.eclipse.linuxtools.internal.lttng2.control.core.model.IBaseEventInfo;
19import org.eclipse.linuxtools.internal.lttng2.control.core.model.IFieldInfo;
20import org.eclipse.linuxtools.internal.lttng2.control.core.model.TraceEventType;
21import org.eclipse.linuxtools.internal.lttng2.control.core.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;
54f2dcc0 71 fLogLevel = other.fLogLevel;
77fdc5df
AM
72 for (Iterator<IFieldInfo> iterator = other.fFields.iterator(); iterator.hasNext();) {
73 IFieldInfo field = iterator.next();
74 if (field instanceof FieldInfo) {
75 fFields.add(new FieldInfo((FieldInfo)field));
76 } else {
77 fFields.add(field);
d4514365
BH
78 }
79 }
80 fFilterExpression = other.fFilterExpression;
eb1bab5b
BH
81 }
82
83 // ------------------------------------------------------------------------
84 // Accessors
85 // ------------------------------------------------------------------------
11252342 86
eb1bab5b
BH
87 @Override
88 public TraceEventType getEventType() {
89 return fEventType;
90 }
91
eb1bab5b
BH
92 @Override
93 public void setEventType(TraceEventType type) {
94 fEventType = type;
95 }
96
eb1bab5b
BH
97 @Override
98 public void setEventType(String typeName) {
0df4af5f 99 if(TraceEventType.TRACEPOINT.getInName().equalsIgnoreCase(typeName)) {
eb1bab5b 100 fEventType = TraceEventType.TRACEPOINT;
0df4af5f 101 } else if(TraceEventType.SYSCALL.getInName().equalsIgnoreCase(typeName)) {
3e91c9c0 102 fEventType = TraceEventType.SYSCALL;
0df4af5f 103 } else if (TraceEventType.PROBE.getInName().equalsIgnoreCase(typeName)) {
d4514365 104 fEventType = TraceEventType.PROBE;
0df4af5f 105 } else if (TraceEventType.FUNCTION.getInName().equalsIgnoreCase(typeName)) {
1f07c96c 106 fEventType = TraceEventType.FUNCTION;
ccc66d01 107 } else {
eb1bab5b
BH
108 fEventType = TraceEventType.UNKNOWN;
109 }
110 }
111
eb1bab5b
BH
112 @Override
113 public TraceLogLevel getLogLevel() {
114 return fLogLevel;
115 }
116
eb1bab5b
BH
117 @Override
118 public void setLogLevel(TraceLogLevel level) {
119 fLogLevel = level;
120 }
121
eb1bab5b
BH
122 @Override
123 public void setLogLevel(String levelName) {
dea2b2b4 124 fLogLevel = TraceLogLevel.valueOfString(levelName);
eb1bab5b 125 }
d4514365 126
d4514365
BH
127 @Override
128 public IFieldInfo[] getFields() {
129 return fFields.toArray(new IFieldInfo[fFields.size()]);
130 }
131
d4514365
BH
132 @Override
133 public void addField(IFieldInfo field) {
134 fFields.add(field);
135 }
136
d4514365
BH
137 @Override
138 public void setFields(List<IFieldInfo> fields) {
a6702bfa 139 fFields.clear();
d4514365
BH
140 for (Iterator<IFieldInfo> iterator = fields.iterator(); iterator.hasNext();) {
141 IFieldInfo fieldInfo = iterator.next();
142 fFields.add(fieldInfo);
143 }
144 }
145
d4514365
BH
146 @Override
147 public String getFilterExpression() {
148 return fFilterExpression;
149 }
150
d4514365
BH
151 @Override
152 public void setFilterExpression(String filter) {
153 fFilterExpression = filter;
154 }
155
eb1bab5b
BH
156 @Override
157 public int hashCode() {
d132bcc7
BH
158 final int prime = 31;
159 int result = super.hashCode();
d4514365 160 result = prime * result + ((fEventType == null) ? 0 : fEventType.hashCode());
77fdc5df 161 result = prime * result + fFields.hashCode();
d4514365
BH
162 result = prime * result + ((fFilterExpression == null) ? 0 : fFilterExpression.hashCode());
163 result = prime * result + ((fLogLevel == null) ? 0 : fLogLevel.hashCode());
eb1bab5b 164 return result;
d4514365 165 }
eb1bab5b 166
eb1bab5b 167 @Override
d132bcc7
BH
168 public boolean equals(Object obj) {
169 if (this == obj) {
170 return true;
171 }
172 if (!super.equals(obj)) {
eb1bab5b
BH
173 return false;
174 }
d132bcc7 175 if (getClass() != obj.getClass()) {
eb1bab5b
BH
176 return false;
177 }
d132bcc7
BH
178 BaseEventInfo other = (BaseEventInfo) obj;
179 if (fEventType != other.fEventType) {
eb1bab5b
BH
180 return false;
181 }
77fdc5df 182 if (!fFields.equals(other.fFields)) {
d4514365
BH
183 return false;
184 }
185 if (fFilterExpression == null) {
186 if (other.fFilterExpression != null) {
187 return false;
188 }
189 } else if (!fFilterExpression.equals(other.fFilterExpression)) {
190 return false;
191 }
d132bcc7 192 if (fLogLevel != other.fLogLevel) {
eb1bab5b
BH
193 return false;
194 }
195 return true;
d4514365 196 }
eb1bab5b 197
eb1bab5b
BH
198 @SuppressWarnings("nls")
199 @Override
200 public String toString() {
201 StringBuffer output = new StringBuffer();
202 output.append("[BaseEventInfo(");
203 output.append(super.toString());
204 output.append(",type=");
205 output.append(fEventType);
206 output.append(",level=");
207 output.append(fLogLevel);
77fdc5df 208 if (!fFields.isEmpty()) {
d4514365
BH
209 output.append(",Fields=");
210 for (Iterator<IFieldInfo> iterator = fFields.iterator(); iterator.hasNext();) {
211 IFieldInfo field = iterator.next();
212 output.append(field.toString());
213 }
214 }
215 if (fFilterExpression != null) {
216 output.append(",Filter=");
217 output.append(fFilterExpression);
218 }
eb1bab5b
BH
219 output.append(")]");
220 return output.toString();
221 }
54f2dcc0 222
a6702bfa 223}
This page took 0.089125 seconds and 5 git commands to generate.