Merge branch 'master' into lttng_2_0_control_dev
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui / src / org / eclipse / linuxtools / internal / lttng / ui / views / control / model / impl / UstProviderInfo.java
1 /**********************************************************************
2 * Copyright (c) 2012 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 **********************************************************************/
12 package org.eclipse.linuxtools.internal.lttng.ui.views.control.model.impl;
13
14 import java.util.ArrayList;
15 import java.util.Iterator;
16 import java.util.List;
17
18 import org.eclipse.linuxtools.internal.lttng.ui.views.control.model.IBaseEventInfo;
19 import org.eclipse.linuxtools.internal.lttng.ui.views.control.model.IUstProviderInfo;
20
21 /**
22 * <b><u>UstProviderInfo</u></b>
23 * <p>
24 * Implementation of the Ust Provider interface (IUstProviderInfo) to store UST
25 * provider related data.
26 * </p>
27 */
28 public class UstProviderInfo extends TraceInfo implements IUstProviderInfo {
29
30 // ------------------------------------------------------------------------
31 // Attributes
32 // ------------------------------------------------------------------------
33 /**
34 * The process ID of the UST provider.
35 */
36 private int fPid = 0;
37 /**
38 * List of event information.
39 */
40 private List<IBaseEventInfo> fEvents = new ArrayList<IBaseEventInfo>();
41
42 // ------------------------------------------------------------------------
43 // Constructors
44 // ------------------------------------------------------------------------
45 /**
46 * Constructor
47 * @param name - name of UST provider
48 */
49 public UstProviderInfo(String name) {
50 super(name);
51 }
52
53 /**
54 * Copy constructor
55 * @param other - the instance to copy
56 */
57 public UstProviderInfo(UstProviderInfo other) {
58 super(other);
59 fPid = other.fPid;
60 for (Iterator<IBaseEventInfo> iterator = other.fEvents.iterator(); iterator.hasNext();) {
61 IBaseEventInfo event = iterator.next();
62 if (event instanceof BaseEventInfo) {
63 fEvents.add(new BaseEventInfo((BaseEventInfo)event));
64 } else {
65 fEvents.add(event);
66 }
67 }
68 }
69
70 // ------------------------------------------------------------------------
71 // Accessors
72 // ------------------------------------------------------------------------
73
74 /*
75 * (non-Javadoc)
76 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.IUstProviderInfo#getPid()
77 */
78 @Override
79 public int getPid() {
80 return fPid;
81 }
82
83 /*
84 * (non-Javadoc)
85 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.IUstProviderInfo#setPid(int)
86 */
87 @Override
88 public void setPid(int pid) {
89 fPid = pid;
90 }
91
92 /*
93 * (non-Javadoc)
94 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.IUstProviderInfo#getEvents()
95 */
96 @Override
97 public IBaseEventInfo[] getEvents() {
98 return fEvents.toArray(new IBaseEventInfo[fEvents.size()]);
99 }
100
101 /*
102 * (non-Javadoc)
103 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.IUstProviderInfo#setEvents(java.util.List)
104 */
105 @Override
106 public void setEvents(List<IBaseEventInfo> events) {
107 for (Iterator<IBaseEventInfo> iterator = events.iterator(); iterator.hasNext();) {
108 IBaseEventInfo eventInfo = (IBaseEventInfo) iterator.next();
109 fEvents.add(eventInfo);
110 }
111 }
112
113 /*
114 * (non-Javadoc)
115 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.IUstProviderInfo#addEvent(org.eclipse.linuxtools.internal.lttng.ui.views.control.model.IBaseEventInfo)
116 */
117 @Override
118 public void addEvent(IBaseEventInfo event) {
119 fEvents.add(event);
120 }
121
122 // ------------------------------------------------------------------------
123 // Operations
124 // ------------------------------------------------------------------------
125
126 /*
127 * (non-Javadoc)
128 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.ITraceInfo#formatString()
129 */
130 @SuppressWarnings("nls")
131 @Override
132 public String formatString() {
133 StringBuffer output = new StringBuffer();
134 //PID: 9379 - Name: /home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello
135 output.append("\nPID: ");
136 output.append(fPid);
137 output.append(" - Name: ");
138 output.append(getName());
139 for (Iterator<IBaseEventInfo> iterator = fEvents.iterator(); iterator.hasNext();) {
140 IBaseEventInfo event = (IBaseEventInfo) iterator.next();
141 output.append(event.formatString());
142 }
143 output.append("\n");
144
145 return output.toString();
146 }
147
148
149 /*
150 * (non-Javadoc)
151 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.impl.TraceInfo#hashCode()
152 */
153 @Override
154 public int hashCode() {
155 final int prime = 31;
156 int result = super.hashCode();
157 result = prime * result + ((fEvents == null) ? 0 : fEvents.hashCode());
158 result = prime * result + fPid;
159 return result;
160 }
161
162 /*
163 * (non-Javadoc)
164 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.impl.TraceInfo#equals(java.lang.Object)
165 */
166 @Override
167 public boolean equals(Object obj) {
168 if (this == obj) {
169 return true;
170 }
171 if (!super.equals(obj)) {
172 return false;
173 }
174 if (getClass() != obj.getClass()) {
175 return false;
176 }
177 UstProviderInfo other = (UstProviderInfo) obj;
178 if (fEvents == null) {
179 if (other.fEvents != null) {
180 return false;
181 }
182 } else if (!fEvents.equals(other.fEvents)) {
183 return false;
184 }
185 if (fPid != other.fPid) {
186 return false;
187 }
188 return true;
189 }
190
191 /*
192 * (non-Javadoc)
193 * @see org.eclipse.linuxtools.internal.lttng.ui.views.control.model.impl.TraceInfo#toString()
194 */
195 @SuppressWarnings("nls")
196 @Override
197 public String toString() {
198 StringBuffer output = new StringBuffer();
199 output.append("[EventInfo(");
200 output.append(super.toString());
201 output.append(",PID=");
202 output.append(fPid);
203 output.append(",Events=");
204 if (fEvents.isEmpty()) {
205 output.append("None");
206 } else {
207 for (Iterator<IBaseEventInfo> iterator = fEvents.iterator(); iterator.hasNext();) {
208 IBaseEventInfo event = (IBaseEventInfo) iterator.next();
209 output.append(event.toString());
210 }
211 }
212 output.append(")]");
213 return output.toString();
214 }
215
216
217 }
This page took 0.035483 seconds and 5 git commands to generate.