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 public TraceSessionState
getSessionState() {
94 public void setSessionState(TraceSessionState state
) {
99 public void setSessionState(String stateName
) {
100 if (TraceSessionState
.INACTIVE
.getInName().equals(stateName
)) {
101 fState
= TraceSessionState
.INACTIVE
;
102 } else if (TraceSessionState
.ACTIVE
.getInName().equals(stateName
)) {
103 fState
= TraceSessionState
.ACTIVE
;
108 public String
getSessionPath() {
113 public void setSessionPath(String path
) {
118 public IDomainInfo
[] getDomains() {
119 return fDomains
.toArray(new IDomainInfo
[fDomains
.size()]);
123 public void setDomains(List
<IDomainInfo
> domains
) {
125 for (Iterator
<IDomainInfo
> iterator
= domains
.iterator(); iterator
.hasNext();) {
126 IDomainInfo domainInfo
= iterator
.next();
127 fDomains
.add(domainInfo
);
132 public boolean isStreamedTrace() {
133 return fIsStreamedTrace
;
137 public void setStreamedTrace(boolean isStreamedTrace
) {
138 fIsStreamedTrace
= isStreamedTrace
;
141 // ------------------------------------------------------------------------
143 // ------------------------------------------------------------------------
146 public void addDomain(IDomainInfo domainInfo
) {
147 fDomains
.add(domainInfo
);
151 public int hashCode() {
152 final int prime
= 31;
153 int result
= super.hashCode();
154 result
= prime
* result
+ fDomains
.hashCode();
155 result
= prime
* result
+ (fIsStreamedTrace ?
1231 : 1237);
156 result
= prime
* result
+ ((fSessionPath
== null) ?
0 : fSessionPath
.hashCode());
157 result
= prime
* result
+ ((fState
== null) ?
0 : fState
.hashCode());
162 public boolean equals(Object obj
) {
166 if (!super.equals(obj
)) {
169 if (getClass() != obj
.getClass()) {
172 SessionInfo other
= (SessionInfo
) obj
;
173 if (!fDomains
.equals(other
.fDomains
)) {
176 if (fIsStreamedTrace
!= other
.fIsStreamedTrace
) {
179 if (fSessionPath
== null) {
180 if (other
.fSessionPath
!= null) {
183 } else if (!fSessionPath
.equals(other
.fSessionPath
)) {
186 if (fState
!= other
.fState
) {
192 @SuppressWarnings("nls")
194 public String
toString() {
195 StringBuffer output
= new StringBuffer();
196 output
.append("[SessionInfo(");
197 output
.append(super.toString());
198 output
.append(",State=");
199 output
.append(fState
);
200 output
.append(",isStreamedTrace=");
201 output
.append(fIsStreamedTrace
);
202 output
.append(",Domains=");
203 for (Iterator
<IDomainInfo
> iterator
= fDomains
.iterator(); iterator
.hasNext();) {
204 IDomainInfo domain
= iterator
.next();
205 output
.append(domain
.toString());
208 return output
.toString();
This page took 0.035723 seconds and 6 git commands to generate.