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 * Bernd Hufmann - Updated for support of LTTng Tools 2.1
12 **********************************************************************/
13 package org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.impl
;
15 import java
.util
.ArrayList
;
16 import java
.util
.Iterator
;
17 import java
.util
.List
;
19 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IDomainInfo
;
20 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.ISessionInfo
;
21 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceSessionState
;
25 * Implementation of the trace session interface (ISessionInfo) to store session
29 * @author Bernd Hufmann
31 public class SessionInfo
extends TraceInfo
implements ISessionInfo
{
33 // ------------------------------------------------------------------------
35 // ------------------------------------------------------------------------
37 * The trace session state.
39 private TraceSessionState fState
= TraceSessionState
.INACTIVE
;
41 * The trace session path for storing traces.
43 private String fSessionPath
= ""; //$NON-NLS-1$
45 * The domains information of this session.
47 private final List
<IDomainInfo
> fDomains
= new ArrayList
<IDomainInfo
>();
49 * Flag to indicate whether trace is streamed over network or not.
51 private boolean fIsStreamedTrace
= false;
53 // ------------------------------------------------------------------------
55 // ------------------------------------------------------------------------
58 * @param name - name of base event
60 public SessionInfo(String name
) {
66 * @param other - the instance to copy
68 public SessionInfo(SessionInfo other
) {
70 fState
= other
.fState
;
71 fSessionPath
= other
.fSessionPath
;
72 fIsStreamedTrace
= other
.fIsStreamedTrace
;
74 for (Iterator
<IDomainInfo
> iterator
= other
.fDomains
.iterator(); iterator
.hasNext();) {
75 IDomainInfo domain
= iterator
.next();
76 if (domain
instanceof DomainInfo
) {
77 fDomains
.add(new DomainInfo((DomainInfo
)domain
));
84 // ------------------------------------------------------------------------
86 // ------------------------------------------------------------------------
89 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ISessionInfo#getSessionState()
92 public TraceSessionState
getSessionState() {
98 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ISessionInfo#setSessionState(org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.TraceSessionState)
101 public void setSessionState(TraceSessionState state
) {
107 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ISessionInfo#setSessionState(java.lang.String)
110 public void setSessionState(String stateName
) {
111 if (TraceSessionState
.INACTIVE
.getInName().equals(stateName
)) {
112 fState
= TraceSessionState
.INACTIVE
;
113 } else if (TraceSessionState
.ACTIVE
.getInName().equals(stateName
)) {
114 fState
= TraceSessionState
.ACTIVE
;
120 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ISessionInfo#getSessionPath()
123 public String
getSessionPath() {
129 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ISessionInfo#setSessionPath(java.lang.String)
132 public void setSessionPath(String path
) {
138 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ISessionInfo#getDomains()
141 public IDomainInfo
[] getDomains() {
142 return fDomains
.toArray(new IDomainInfo
[fDomains
.size()]);
147 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ISessionInfo#setDomains(java.util.List)
150 public void setDomains(List
<IDomainInfo
> domains
) {
151 for (Iterator
<IDomainInfo
> iterator
= domains
.iterator(); iterator
.hasNext();) {
152 IDomainInfo domainInfo
= iterator
.next();
153 fDomains
.add(domainInfo
);
159 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.ISessionInfo#isStreamedTrace()
162 public boolean isStreamedTrace() {
163 return fIsStreamedTrace
;
168 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.ISessionInfo#setIsStreamedTrace(boolean)
172 public void setStreamedTrace(boolean isStreamedTrace
) {
173 fIsStreamedTrace
= isStreamedTrace
;
176 // ------------------------------------------------------------------------
178 // ------------------------------------------------------------------------
181 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ISessionInfo#addDomain(org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.IDomainInfo)
184 public void addDomain(IDomainInfo domainInfo
) {
185 fDomains
.add(domainInfo
);
190 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.TraceInfo#hashCode()
193 public int hashCode() {
194 final int prime
= 31;
195 int result
= super.hashCode();
196 result
= prime
* result
+ fDomains
.hashCode();
197 result
= prime
* result
+ (fIsStreamedTrace ?
1231 : 1237);
198 result
= prime
* result
+ ((fSessionPath
== null) ?
0 : fSessionPath
.hashCode());
199 result
= prime
* result
+ ((fState
== null) ?
0 : fState
.hashCode());
205 * @see org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.TraceInfo#equals(java.lang.Object)
208 public boolean equals(Object obj
) {
212 if (!super.equals(obj
)) {
215 if (getClass() != obj
.getClass()) {
218 SessionInfo other
= (SessionInfo
) obj
;
219 if (!fDomains
.equals(other
.fDomains
)) {
222 if (fIsStreamedTrace
!= other
.fIsStreamedTrace
) {
225 if (fSessionPath
== null) {
226 if (other
.fSessionPath
!= null) {
229 } else if (!fSessionPath
.equals(other
.fSessionPath
)) {
232 if (fState
!= other
.fState
) {
240 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceInfo#toString()
242 @SuppressWarnings("nls")
244 public String
toString() {
245 StringBuffer output
= new StringBuffer();
246 output
.append("[SessionInfo(");
247 output
.append(super.toString());
248 output
.append(",State=");
249 output
.append(fState
);
250 output
.append(",isStreamedTrace=");
251 output
.append(fIsStreamedTrace
);
252 output
.append(",Domains=");
253 for (Iterator
<IDomainInfo
> iterator
= fDomains
.iterator(); iterator
.hasNext();) {
254 IDomainInfo domain
= iterator
.next();
255 output
.append(domain
.toString());
258 return output
.toString();
This page took 0.03795 seconds and 5 git commands to generate.