1 /**********************************************************************
2 * Copyright (c) 2012 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
.lttng
.ui
.views
.control
.model
.impl
;
14 import java
.util
.ArrayList
;
15 import java
.util
.Iterator
;
16 import java
.util
.List
;
18 import org
.eclipse
.linuxtools
.lttng
.ui
.views
.control
.model
.IBaseEventInfo
;
19 import org
.eclipse
.linuxtools
.lttng
.ui
.views
.control
.model
.IUstProviderInfo
;
22 * <b><u>UstProviderInfo</u></b>
24 * Implementation of the Ust Provider interface (IUstProviderInfo) to store UST
25 * provider related data.
28 public class UstProviderInfo
extends TraceInfo
implements IUstProviderInfo
{
30 // ------------------------------------------------------------------------
32 // ------------------------------------------------------------------------
34 * The process ID of the UST provider.
38 * List of event information.
40 private List
<IBaseEventInfo
> fEvents
= new ArrayList
<IBaseEventInfo
>();
42 // ------------------------------------------------------------------------
44 // ------------------------------------------------------------------------
47 * @param name - name of UST provider
49 public UstProviderInfo(String name
) {
55 * @param other - the instance to copy
57 public UstProviderInfo(UstProviderInfo other
) {
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
));
70 // ------------------------------------------------------------------------
72 // ------------------------------------------------------------------------
76 * @see org.eclipse.linuxtools.lttng.ui.views.control.model.IUstProviderInfo#getPid()
85 * @see org.eclipse.linuxtools.lttng.ui.views.control.model.IUstProviderInfo#setPid(int)
88 public void setPid(int pid
) {
94 * @see org.eclipse.linuxtools.lttng.ui.views.control.model.IUstProviderInfo#getEvents()
97 public IBaseEventInfo
[] getEvents() {
98 return fEvents
.toArray(new IBaseEventInfo
[fEvents
.size()]);
103 * @see org.eclipse.linuxtools.lttng.ui.views.control.model.IUstProviderInfo#setEvents(java.util.List)
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
);
115 * @see org.eclipse.linuxtools.lttng.ui.views.control.model.IUstProviderInfo#addEvent(org.eclipse.linuxtools.lttng.ui.views.control.model.IBaseEventInfo)
118 public void addEvent(IBaseEventInfo event
) {
122 // ------------------------------------------------------------------------
124 // ------------------------------------------------------------------------
128 * @see org.eclipse.linuxtools.lttng.ui.views.control.model.impl.TraceInfo#hashCode()
131 public int hashCode() {
133 result
= 37 * result
+ super.hashCode();
134 for (Iterator
<IBaseEventInfo
> iterator
= fEvents
.iterator(); iterator
.hasNext();) {
135 IBaseEventInfo event
= (IBaseEventInfo
) iterator
.next();
136 result
= 37 * result
+ event
.hashCode();
143 * @see org.eclipse.linuxtools.lttng.ui.views.control.model.impl.TraceInfo#equals(java.lang.Object)
146 public boolean equals(Object other
) {
147 if (!(other
instanceof UstProviderInfo
)) {
151 UstProviderInfo otherUstInfo
= (UstProviderInfo
) other
;
152 if (!super.equals(otherUstInfo
)) {
156 if (fEvents
.size() != otherUstInfo
.fEvents
.size()) {
159 for (int i
= 0; i
< fEvents
.size(); i
++) {
160 if (!fEvents
.get(i
).equals(otherUstInfo
.fEvents
.get(i
))) {
169 * @see org.eclipse.linuxtools.lttng.ui.views.control.model.impl.TraceInfo#toString()
171 @SuppressWarnings("nls")
173 public String
toString() {
174 StringBuffer output
= new StringBuffer();
175 output
.append("[EventInfo(");
176 output
.append(super.toString());
177 output
.append(",PID=");
179 output
.append(",Events=");
180 if (fEvents
.isEmpty()) {
181 output
.append("None");
183 for (Iterator
<IBaseEventInfo
> iterator
= fEvents
.iterator(); iterator
.hasNext();) {
184 IBaseEventInfo event
= (IBaseEventInfo
) iterator
.next();
185 output
.append(event
.toString());
189 return output
.toString();