8a39349d26df83fddb4f4ff9ae2a87b24a648b66
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.core / src / org / eclipse / linuxtools / internal / lttng2 / core / control / model / impl / DomainInfo.java
1 /**********************************************************************
2 * Copyright (c) 2012, 2013 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.lttng2.core.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.lttng2.core.control.model.IChannelInfo;
19 import org.eclipse.linuxtools.internal.lttng2.core.control.model.IDomainInfo;
20
21 /**
22 * <p>
23 * Implementation of the trace domain interface (IDomainInfo) to store domain
24 * related data.
25 * </p>
26 *
27 * @author Bernd Hufmann
28 */
29 public class DomainInfo extends TraceInfo implements IDomainInfo {
30
31 // ------------------------------------------------------------------------
32 // Attributes
33 // ------------------------------------------------------------------------
34 /**
35 * The channels information of the domain.
36 */
37 private final List<IChannelInfo> fChannels = new ArrayList<IChannelInfo>();
38 private boolean fIsKernel = false;
39
40 // ------------------------------------------------------------------------
41 // Constructors
42 // ------------------------------------------------------------------------
43 /**
44 * Constructor
45 * @param name - name of domain
46 */
47 public DomainInfo(String name) {
48 super(name);
49 }
50
51 /**
52 * Copy constructor
53 * @param other - the instance to copy
54 */
55 public DomainInfo(DomainInfo other) {
56 super(other);
57 for (int i = 0; i < other.fChannels.size(); i++) {
58 if (other.fChannels.get(i) instanceof ChannelInfo) {
59 fChannels.add(new ChannelInfo((ChannelInfo)other.fChannels.get(i)));
60 } else {
61 fChannels.add(other.fChannels.get(i));
62 }
63 }
64 fIsKernel = other.fIsKernel;
65 }
66
67 @Override
68 public boolean isKernel() {
69 return fIsKernel;
70 }
71
72 @Override
73 public void setIsKernel(boolean isKernel) {
74 fIsKernel = isKernel;
75 }
76
77 // ------------------------------------------------------------------------
78 // Accessors
79 // ------------------------------------------------------------------------
80
81 @Override
82 public IChannelInfo[] getChannels() {
83 return fChannels.toArray(new IChannelInfo[fChannels.size()]);
84 }
85
86 @Override
87 public void setChannels(List<IChannelInfo> channels) {
88 fChannels.clear();
89 for (Iterator<IChannelInfo> iterator = channels.iterator(); iterator.hasNext();) {
90 IChannelInfo channelInfo = iterator.next();
91 fChannels.add(channelInfo);
92 }
93 }
94
95 @Override
96 public void addChannel(IChannelInfo channel) {
97 fChannels.add(channel);
98 }
99
100 @Override
101 public int hashCode() {
102 final int prime = 31;
103 int result = super.hashCode();
104 result = prime * result + fChannels.hashCode();
105 result = prime * result + (fIsKernel ? 1231 : 1237);
106 return result;
107 }
108
109 @Override
110 public boolean equals(Object obj) {
111 if (this == obj) {
112 return true;
113 }
114 if (!super.equals(obj)) {
115 return false;
116 }
117 if (getClass() != obj.getClass()) {
118 return false;
119 }
120 DomainInfo other = (DomainInfo) obj;
121 if (!fChannels.equals(other.fChannels)) {
122 return false;
123 }
124 if (fIsKernel != other.fIsKernel) {
125 return false;
126 }
127 return true;
128 }
129
130 @SuppressWarnings("nls")
131 @Override
132 public String toString() {
133 StringBuffer output = new StringBuffer();
134 output.append("[DomainInfo(");
135 output.append(super.toString());
136 output.append(",Channels=");
137 if (fChannels.isEmpty()) {
138 output.append("None");
139 } else {
140 for (Iterator<IChannelInfo> iterator = fChannels.iterator(); iterator.hasNext();) {
141 IChannelInfo channel = iterator.next();
142 output.append(channel.toString());
143 }
144 }
145 output.append(",isKernel=");
146 output.append(String.valueOf(fIsKernel));
147 output.append(")]");
148 return output.toString();
149 }
150
151 }
This page took 0.033332 seconds and 4 git commands to generate.