2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
Copyright @ 1999-2003, The Institute for Genomic Research (TIGR). |
2 |
26 Feb 07 |
jari |
All rights reserved. |
2 |
26 Feb 07 |
jari |
4 |
*/ |
2 |
26 Feb 07 |
jari |
5 |
/* |
2 |
26 Feb 07 |
jari |
* $RCSfile: Cluster.java,v $ |
2 |
26 Feb 07 |
jari |
* $Revision: 1.10 $ |
2 |
26 Feb 07 |
jari |
* $Date: 2006/05/18 20:07:49 $ |
2 |
26 Feb 07 |
jari |
* $Author: eleanorahowe $ |
2 |
26 Feb 07 |
jari |
* $State: Exp $ |
2 |
26 Feb 07 |
jari |
11 |
*/ |
2 |
26 Feb 07 |
jari |
12 |
package org.tigr.microarray.mev.cluster.clusterUtil; |
2 |
26 Feb 07 |
jari |
13 |
|
2 |
26 Feb 07 |
jari |
14 |
import java.awt.Color; |
2 |
26 Feb 07 |
jari |
15 |
import java.beans.Encoder; |
2 |
26 Feb 07 |
jari |
16 |
import java.beans.Expression; |
2 |
26 Feb 07 |
jari |
17 |
import java.beans.PersistenceDelegate; |
2 |
26 Feb 07 |
jari |
18 |
import java.util.HashSet; |
2 |
26 Feb 07 |
jari |
19 |
|
2 |
26 Feb 07 |
jari |
20 |
import javax.swing.tree.DefaultMutableTreeNode; |
2 |
26 Feb 07 |
jari |
21 |
|
2 |
26 Feb 07 |
jari |
22 |
import org.tigr.microarray.mev.cluster.gui.Experiment; |
2 |
26 Feb 07 |
jari |
//import org.tigr.microarray.mev.cluster.gui.impl.ptm.PTMExperimentHeader; |
2 |
26 Feb 07 |
jari |
24 |
|
2 |
26 Feb 07 |
jari |
/** The Cluster class encapsulates information required to define a cluster. |
2 |
26 Feb 07 |
jari |
* Methods include standard set... and get... methods to access and alter |
2 |
26 Feb 07 |
jari |
* the cluster definition. |
2 |
26 Feb 07 |
jari |
28 |
*/ |
2 |
26 Feb 07 |
jari |
29 |
public class Cluster { |
2 |
26 Feb 07 |
jari |
30 |
|
2 |
26 Feb 07 |
jari |
31 |
public static final int GENE_CLUSTER = 0; |
2 |
26 Feb 07 |
jari |
32 |
public static final int EXPERIMENT_CLUSTER = 1; |
2 |
26 Feb 07 |
jari |
33 |
|
2 |
26 Feb 07 |
jari |
/** Cluster color |
2 |
26 Feb 07 |
jari |
35 |
*/ |
2 |
26 Feb 07 |
jari |
36 |
private Color clusterColor; |
2 |
26 Feb 07 |
jari |
/** Element indices in IData. |
2 |
26 Feb 07 |
jari |
38 |
*/ |
2 |
26 Feb 07 |
jari |
39 |
private int [] indices; |
2 |
26 Feb 07 |
jari |
/** Indices to the Experiment Object's matrix |
2 |
26 Feb 07 |
jari |
41 |
*/ |
2 |
26 Feb 07 |
jari |
42 |
private int [] experimentIndices; |
2 |
26 Feb 07 |
jari |
/** Cluster source type |
2 |
26 Feb 07 |
jari |
44 |
*/ |
2 |
26 Feb 07 |
jari |
45 |
private String source; |
2 |
26 Feb 07 |
jari |
/** Cluster origin node name |
2 |
26 Feb 07 |
jari |
47 |
*/ |
2 |
26 Feb 07 |
jari |
48 |
private String clusterID; |
2 |
26 Feb 07 |
jari |
/** User defined cluster label |
2 |
26 Feb 07 |
jari |
50 |
*/ |
2 |
26 Feb 07 |
jari |
51 |
private String clusterLabel; |
2 |
26 Feb 07 |
jari |
/** Algorithm node name |
2 |
26 Feb 07 |
jari |
53 |
*/ |
2 |
26 Feb 07 |
jari |
54 |
private String algorithmName; |
2 |
26 Feb 07 |
jari |
/** Cluster remarks/description |
2 |
26 Feb 07 |
jari |
56 |
*/ |
2 |
26 Feb 07 |
jari |
57 |
private String clusterDescription; |
2 |
26 Feb 07 |
jari |
/** Result index on result tree. |
2 |
26 Feb 07 |
jari |
59 |
*/ |
2 |
26 Feb 07 |
jari |
60 |
private int algorithmIndex; |
2 |
26 Feb 07 |
jari |
/** Cluster sequential serial numbe |
2 |
26 Feb 07 |
jari |
62 |
*/ |
2 |
26 Feb 07 |
jari |
63 |
private int serialNumber; |
2 |
26 Feb 07 |
jari |
/** Cluster node of origin, possibly null. |
2 |
26 Feb 07 |
jari |
65 |
*/ |
2 |
26 Feb 07 |
jari |
66 |
private DefaultMutableTreeNode node; |
2 |
26 Feb 07 |
jari |
/** Cluster's Experiment of origin |
2 |
26 Feb 07 |
jari |
68 |
*/ |
2 |
26 Feb 07 |
jari |
69 |
private Experiment experiment; |
2 |
26 Feb 07 |
jari |
/** Node objects userObject |
2 |
26 Feb 07 |
jari |
71 |
*/ |
2 |
26 Feb 07 |
jari |
72 |
private Object userObject; |
2 |
26 Feb 07 |
jari |
/** boolean to indicate if cluster color should be displayed |
2 |
26 Feb 07 |
jari |
74 |
*/ |
2 |
26 Feb 07 |
jari |
75 |
private boolean isShowColor; |
2 |
26 Feb 07 |
jari |
76 |
|
2 |
26 Feb 07 |
jari |
//EH |
2 |
26 Feb 07 |
jari |
78 |
private int exptID = 0; |
2 |
26 Feb 07 |
jari |
79 |
|
2 |
26 Feb 07 |
jari |
80 |
/** |
2 |
26 Feb 07 |
jari |
* EH Creates new cluster object |
2 |
26 Feb 07 |
jari |
* @deprecated Left in place for compatibility with saved analysis files from |
2 |
26 Feb 07 |
jari |
* an early release of v4.0b. |
2 |
26 Feb 07 |
jari |
84 |
*/ |
2 |
26 Feb 07 |
jari |
85 |
public Cluster(int [] indices, String source, String clusterLabel, String algorithmName, |
2 |
26 Feb 07 |
jari |
86 |
String clusterID, String clusterDescription, Integer index, |
2 |
26 Feb 07 |
jari |
87 |
Integer serialNumber, Color clusterColor, Integer exptID) { |
2 |
26 Feb 07 |
jari |
88 |
this.indices = indices; |
2 |
26 Feb 07 |
jari |
89 |
this.source = source; |
2 |
26 Feb 07 |
jari |
90 |
this.clusterLabel = clusterLabel; |
2 |
26 Feb 07 |
jari |
91 |
this.clusterID = clusterID; |
2 |
26 Feb 07 |
jari |
92 |
this.algorithmName = algorithmName; |
2 |
26 Feb 07 |
jari |
93 |
this.algorithmIndex = index.intValue(); |
2 |
26 Feb 07 |
jari |
94 |
this.clusterColor = clusterColor; |
2 |
26 Feb 07 |
jari |
95 |
this.clusterDescription = clusterDescription; |
2 |
26 Feb 07 |
jari |
96 |
this.serialNumber = serialNumber.intValue(); |
2 |
26 Feb 07 |
jari |
97 |
this.exptID = exptID.intValue(); |
2 |
26 Feb 07 |
jari |
98 |
this.isShowColor = true; |
2 |
26 Feb 07 |
jari |
99 |
} |
2 |
26 Feb 07 |
jari |
/** Creates new cluster object |
2 |
26 Feb 07 |
jari |
101 |
*/ |
2 |
26 Feb 07 |
jari |
102 |
public Cluster(int [] indices, String source, String clusterLabel, String algorithmName, String clusterID, String clusterDescription, int index, int serialNumber, Color clusterColor, Experiment experiment) { |
2 |
26 Feb 07 |
jari |
103 |
this.indices = indices; |
2 |
26 Feb 07 |
jari |
104 |
this.source = source; |
2 |
26 Feb 07 |
jari |
105 |
this.clusterLabel = clusterLabel; |
2 |
26 Feb 07 |
jari |
106 |
this.clusterID = clusterID; |
2 |
26 Feb 07 |
jari |
107 |
this.algorithmName = algorithmName; |
2 |
26 Feb 07 |
jari |
108 |
this.algorithmIndex = index; |
2 |
26 Feb 07 |
jari |
109 |
this.clusterColor = clusterColor; |
2 |
26 Feb 07 |
jari |
110 |
this.clusterDescription = clusterDescription; |
2 |
26 Feb 07 |
jari |
111 |
this.serialNumber = serialNumber; |
2 |
26 Feb 07 |
jari |
112 |
this.experiment = experiment; |
2 |
26 Feb 07 |
jari |
113 |
this.isShowColor = true; |
2 |
26 Feb 07 |
jari |
114 |
this.experimentIndices = getIndicesMappedToExperiment(); |
2 |
26 Feb 07 |
jari |
115 |
} |
2 |
26 Feb 07 |
jari |
116 |
|
2 |
26 Feb 07 |
jari |
117 |
/** |
2 |
26 Feb 07 |
jari |
* State-saving constructor. |
2 |
26 Feb 07 |
jari |
* @param indices |
2 |
26 Feb 07 |
jari |
* @param source |
2 |
26 Feb 07 |
jari |
* @param clusterLabel |
2 |
26 Feb 07 |
jari |
* @param algorithmName |
2 |
26 Feb 07 |
jari |
* @param clusterID |
2 |
26 Feb 07 |
jari |
* @param clusterDescription |
2 |
26 Feb 07 |
jari |
* @param index |
2 |
26 Feb 07 |
jari |
* @param serialNumber |
2 |
26 Feb 07 |
jari |
* @param clusterColor |
2 |
26 Feb 07 |
jari |
* @param node |
2 |
26 Feb 07 |
jari |
* @param experiment |
2 |
26 Feb 07 |
jari |
130 |
*/ |
2 |
26 Feb 07 |
jari |
131 |
public Cluster(int [] indices, String source, String clusterLabel, String algorithmName, String clusterID, String clusterDescription, Integer index, Integer serialNumber, Color clusterColor, DefaultMutableTreeNode node, Experiment experiment) { |
2 |
26 Feb 07 |
jari |
132 |
this(indices, source, clusterLabel, algorithmName, clusterID, clusterDescription, index.intValue(), serialNumber.intValue(), clusterColor, null, experiment); |
2 |
26 Feb 07 |
jari |
// TODO |
2 |
26 Feb 07 |
jari |
134 |
System.out.println("constructor 3"); |
2 |
26 Feb 07 |
jari |
135 |
} |
2 |
26 Feb 07 |
jari |
136 |
|
2 |
26 Feb 07 |
jari |
/** Creates new cluster object |
2 |
26 Feb 07 |
jari |
138 |
*/ |
2 |
26 Feb 07 |
jari |
139 |
public Cluster(int [] indices, String source, String clusterLabel, String algorithmName, String clusterID, String clusterDescription, int index, int serialNumber, Color clusterColor, DefaultMutableTreeNode node, Experiment experiment) { |
2 |
26 Feb 07 |
jari |
140 |
this.indices = indices; |
2 |
26 Feb 07 |
jari |
141 |
this.source = source; |
2 |
26 Feb 07 |
jari |
142 |
this.clusterLabel = clusterLabel; |
2 |
26 Feb 07 |
jari |
143 |
this.clusterID = clusterID; |
2 |
26 Feb 07 |
jari |
144 |
this.algorithmName = algorithmName; |
2 |
26 Feb 07 |
jari |
145 |
this.algorithmIndex = index; |
2 |
26 Feb 07 |
jari |
146 |
this.clusterColor = clusterColor; |
2 |
26 Feb 07 |
jari |
147 |
this.clusterDescription = clusterDescription; |
2 |
26 Feb 07 |
jari |
148 |
this.serialNumber = serialNumber; |
2 |
26 Feb 07 |
jari |
149 |
if(node != null){ |
2 |
26 Feb 07 |
jari |
150 |
this.node = node; |
2 |
26 Feb 07 |
jari |
151 |
this.userObject = node.getUserObject(); |
2 |
26 Feb 07 |
jari |
152 |
} |
2 |
26 Feb 07 |
jari |
153 |
this.experiment = experiment; |
2 |
26 Feb 07 |
jari |
154 |
this.exptID = experiment.getId(); |
2 |
26 Feb 07 |
jari |
155 |
this.isShowColor = true; |
2 |
26 Feb 07 |
jari |
156 |
this.experimentIndices = getIndicesMappedToExperiment(); |
2 |
26 Feb 07 |
jari |
157 |
} |
2 |
26 Feb 07 |
jari |
158 |
|
2 |
26 Feb 07 |
jari |
/** Returns cluster color |
2 |
26 Feb 07 |
jari |
160 |
*/ |
2 |
26 Feb 07 |
jari |
161 |
public Color getClusterColor(){ |
2 |
26 Feb 07 |
jari |
162 |
if(this.isShowColor) |
2 |
26 Feb 07 |
jari |
163 |
return this.clusterColor; |
2 |
26 Feb 07 |
jari |
164 |
else |
2 |
26 Feb 07 |
jari |
165 |
return null; |
2 |
26 Feb 07 |
jari |
166 |
} |
2 |
26 Feb 07 |
jari |
167 |
|
2 |
26 Feb 07 |
jari |
/** Sets boolean to show color |
2 |
26 Feb 07 |
jari |
169 |
*/ |
2 |
26 Feb 07 |
jari |
170 |
public void enableShowColor(boolean show) { |
2 |
26 Feb 07 |
jari |
171 |
this.isShowColor = show; |
2 |
26 Feb 07 |
jari |
172 |
} |
2 |
26 Feb 07 |
jari |
/** returns true if color is to be shown |
2 |
26 Feb 07 |
jari |
174 |
*/ |
2 |
26 Feb 07 |
jari |
175 |
public boolean showColor() { |
2 |
26 Feb 07 |
jari |
176 |
return this.isShowColor; |
2 |
26 Feb 07 |
jari |
177 |
} |
2 |
26 Feb 07 |
jari |
/** Returns cluster indices |
2 |
26 Feb 07 |
jari |
179 |
*/ |
2 |
26 Feb 07 |
jari |
180 |
public int [] getIndices(){ return this.indices; } |
2 |
26 Feb 07 |
jari |
/** Returns the cluster indices to the Experiment object associated with the cluster. |
2 |
26 Feb 07 |
jari |
182 |
*/ |
2 |
26 Feb 07 |
jari |
183 |
public int [] getExperimentIndices(){ return this.experimentIndices; } |
2 |
26 Feb 07 |
jari |
/** Returns source type |
2 |
26 Feb 07 |
jari |
185 |
*/ |
2 |
26 Feb 07 |
jari |
186 |
public String getSource(){ return this.source; } |
2 |
26 Feb 07 |
jari |
/** Get user defined cluser label |
2 |
26 Feb 07 |
jari |
188 |
*/ |
2 |
26 Feb 07 |
jari |
189 |
public String getClusterLabel(){ return this.clusterLabel; } |
2 |
26 Feb 07 |
jari |
/** Returns cluster node name. |
2 |
26 Feb 07 |
jari |
191 |
*/ |
2 |
26 Feb 07 |
jari |
192 |
public String getClusterID(){ return this.clusterID; } |
2 |
26 Feb 07 |
jari |
/** Returns algorithm node name |
2 |
26 Feb 07 |
jari |
194 |
*/ |
2 |
26 Feb 07 |
jari |
195 |
public String getAlgorithmName(){ return this.algorithmName; } |
2 |
26 Feb 07 |
jari |
/** Returns cluster description/remarks |
2 |
26 Feb 07 |
jari |
197 |
*/ |
2 |
26 Feb 07 |
jari |
198 |
public String getClusterDescription(){ return this.clusterDescription; } |
2 |
26 Feb 07 |
jari |
/** Returns result index |
2 |
26 Feb 07 |
jari |
200 |
*/ |
2 |
26 Feb 07 |
jari |
201 |
public int getAlgorithmIndex(){ return this.algorithmIndex; } |
2 |
26 Feb 07 |
jari |
/** Returns cluster serial number |
2 |
26 Feb 07 |
jari |
203 |
*/ |
2 |
26 Feb 07 |
jari |
204 |
public int getSerialNumber(){ return this.serialNumber; } |
2 |
26 Feb 07 |
jari |
/** Returns the population of the cluster |
2 |
26 Feb 07 |
jari |
206 |
*/ |
2 |
26 Feb 07 |
jari |
207 |
public int getSize(){ return this.indices.length; } |
2 |
26 Feb 07 |
jari |
/** Returns the node of origin or null if N/A |
2 |
26 Feb 07 |
jari |
209 |
*/ |
2 |
26 Feb 07 |
jari |
210 |
public DefaultMutableTreeNode getNode(){ return node; } |
2 |
26 Feb 07 |
jari |
/** Returns the cluster's experiment |
2 |
26 Feb 07 |
jari |
212 |
*/ |
2 |
26 Feb 07 |
jari |
213 |
public Experiment getExperiment(){ return experiment; } |
2 |
26 Feb 07 |
jari |
/** Returns the cluster's node objects userObject |
2 |
26 Feb 07 |
jari |
215 |
*/ |
2 |
26 Feb 07 |
jari |
216 |
public Object getUserObject(){ return userObject; } |
2 |
26 Feb 07 |
jari |
/** Sets cluster color |
2 |
26 Feb 07 |
jari |
218 |
*/ |
2 |
26 Feb 07 |
jari |
219 |
public void setClusterColor(Color color){ this.clusterColor = color; } |
2 |
26 Feb 07 |
jari |
/** Sets cluster label |
2 |
26 Feb 07 |
jari |
* @param clusterLabel Cluster label |
2 |
26 Feb 07 |
jari |
222 |
*/ |
2 |
26 Feb 07 |
jari |
223 |
public void setClusterLabel(String clusterLabel){ this.clusterLabel = clusterLabel; } |
2 |
26 Feb 07 |
jari |
/** Sets cluster description |
2 |
26 Feb 07 |
jari |
225 |
*/ |
2 |
26 Feb 07 |
jari |
226 |
public void setClusterDescription(String clusterDescription){ this.clusterDescription = clusterDescription; } |
2 |
26 Feb 07 |
jari |
/** Sets node of origin or reference node. |
2 |
26 Feb 07 |
jari |
* @param myNode node |
2 |
26 Feb 07 |
jari |
229 |
*/ |
2 |
26 Feb 07 |
jari |
230 |
public void setNode(DefaultMutableTreeNode myNode){ node = myNode; } |
2 |
26 Feb 07 |
jari |
/** Sets the Experiment for the cluster |
2 |
26 Feb 07 |
jari |
232 |
*/ |
2 |
26 Feb 07 |
jari |
233 |
public void setExperiment(Experiment experiment){ |
2 |
26 Feb 07 |
jari |
234 |
this.experiment = experiment; |
2 |
26 Feb 07 |
jari |
235 |
this.exptID = experiment.getId(); |
2 |
26 Feb 07 |
jari |
236 |
this.experimentIndices = getIndicesMappedToExperiment(); |
2 |
26 Feb 07 |
jari |
237 |
} |
2 |
26 Feb 07 |
jari |
238 |
|
2 |
26 Feb 07 |
jari |
//EH |
2 |
26 Feb 07 |
jari |
240 |
public int getExptID(){return exptID;} |
2 |
26 Feb 07 |
jari |
241 |
|
2 |
26 Feb 07 |
jari |
/** Returns true if supplied element index is a |
2 |
26 Feb 07 |
jari |
* member of the cluster |
2 |
26 Feb 07 |
jari |
* @param index Element index |
2 |
26 Feb 07 |
jari |
* @return Returns boolean indicating membership |
2 |
26 Feb 07 |
jari |
246 |
*/ |
2 |
26 Feb 07 |
jari |
247 |
public boolean isMember(int index){ |
2 |
26 Feb 07 |
jari |
248 |
for(int i = 0; i < this.indices.length; i++) |
2 |
26 Feb 07 |
jari |
249 |
if(index == indices[i]) |
2 |
26 Feb 07 |
jari |
250 |
return true; |
2 |
26 Feb 07 |
jari |
251 |
return false; |
2 |
26 Feb 07 |
jari |
252 |
} |
2 |
26 Feb 07 |
jari |
253 |
|
2 |
26 Feb 07 |
jari |
/** Removes an element index from cluster |
2 |
26 Feb 07 |
jari |
* membership. |
2 |
26 Feb 07 |
jari |
* @param memberIndex Index of member to remove. |
2 |
26 Feb 07 |
jari |
257 |
*/ |
2 |
26 Feb 07 |
jari |
258 |
public boolean removeMember(int memberIndex){ |
2 |
26 Feb 07 |
jari |
259 |
|
2 |
26 Feb 07 |
jari |
260 |
if(!isMember(memberIndex)) |
2 |
26 Feb 07 |
jari |
261 |
return false; |
2 |
26 Feb 07 |
jari |
262 |
|
2 |
26 Feb 07 |
jari |
263 |
int [] newIndices = new int[this.indices.length - 1]; |
2 |
26 Feb 07 |
jari |
264 |
int cnt = 0; |
2 |
26 Feb 07 |
jari |
265 |
for(int i = 0; i < indices.length; i++){ |
2 |
26 Feb 07 |
jari |
266 |
if(indices[i] != memberIndex){ |
2 |
26 Feb 07 |
jari |
267 |
newIndices[cnt] = indices[i]; |
2 |
26 Feb 07 |
jari |
268 |
cnt++; |
2 |
26 Feb 07 |
jari |
269 |
} |
2 |
26 Feb 07 |
jari |
270 |
} |
2 |
26 Feb 07 |
jari |
271 |
return true; |
2 |
26 Feb 07 |
jari |
272 |
} |
2 |
26 Feb 07 |
jari |
273 |
|
2 |
26 Feb 07 |
jari |
/** Returns a Hashset which contains the indices |
2 |
26 Feb 07 |
jari |
* of the cluster |
2 |
26 Feb 07 |
jari |
276 |
*/ |
2 |
26 Feb 07 |
jari |
277 |
public HashSet getHashSet(){ |
2 |
26 Feb 07 |
jari |
278 |
HashSet set = new HashSet(indices.length); |
2 |
26 Feb 07 |
jari |
279 |
for(int i = 0; i < indices.length; i++){ |
2 |
26 Feb 07 |
jari |
280 |
set.add(new Integer(indices[i])); |
2 |
26 Feb 07 |
jari |
281 |
} |
2 |
26 Feb 07 |
jari |
282 |
return set; |
2 |
26 Feb 07 |
jari |
283 |
} |
2 |
26 Feb 07 |
jari |
284 |
|
2 |
26 Feb 07 |
jari |
/** Returns true if indices are a match |
2 |
26 Feb 07 |
jari |
286 |
* |
2 |
26 Feb 07 |
jari |
287 |
*/ |
2 |
26 Feb 07 |
jari |
288 |
public boolean doIndicesMatch(int [] indices){ |
2 |
26 Feb 07 |
jari |
289 |
if(indices.length != this.indices.length) |
2 |
26 Feb 07 |
jari |
290 |
return false; |
2 |
26 Feb 07 |
jari |
291 |
HashSet clusterSet = getHashSet(); |
2 |
26 Feb 07 |
jari |
292 |
HashSet testSet = makeHashSet(indices); |
2 |
26 Feb 07 |
jari |
293 |
return clusterSet.containsAll(testSet); |
2 |
26 Feb 07 |
jari |
294 |
} |
2 |
26 Feb 07 |
jari |
295 |
|
2 |
26 Feb 07 |
jari |
296 |
private HashSet makeHashSet(int [] indices){ |
2 |
26 Feb 07 |
jari |
297 |
HashSet set = new HashSet(indices.length); |
2 |
26 Feb 07 |
jari |
298 |
for( int i = 0; i < indices.length; i++ ){ |
2 |
26 Feb 07 |
jari |
299 |
set.add(new Integer(indices[i])); |
2 |
26 Feb 07 |
jari |
300 |
} |
2 |
26 Feb 07 |
jari |
301 |
return set; |
2 |
26 Feb 07 |
jari |
302 |
} |
2 |
26 Feb 07 |
jari |
303 |
|
2 |
26 Feb 07 |
jari |
304 |
private int [] getIndicesMappedToExperiment(){ |
2 |
26 Feb 07 |
jari |
305 |
int [] expIndices= new int[indices.length]; |
2 |
26 Feb 07 |
jari |
306 |
int [] map = this.experiment.getRowMappingArrayCopy(); |
2 |
26 Feb 07 |
jari |
307 |
int cnt = 0; |
2 |
26 Feb 07 |
jari |
/* for(int i = 0; i < map.length; i++){ |
2 |
26 Feb 07 |
jari |
if(map[i] == indices[cnt]){ |
2 |
26 Feb 07 |
jari |
expIndices[cnt] = i; |
2 |
26 Feb 07 |
jari |
cnt++; |
2 |
26 Feb 07 |
jari |
312 |
} |
2 |
26 Feb 07 |
jari |
313 |
} |
2 |
26 Feb 07 |
jari |
314 |
**/ |
2 |
26 Feb 07 |
jari |
315 |
int currIndex; |
2 |
26 Feb 07 |
jari |
316 |
for(int i = 0; i < expIndices.length; i++){ |
2 |
26 Feb 07 |
jari |
317 |
currIndex = indices[i]; |
2 |
26 Feb 07 |
jari |
318 |
|
2 |
26 Feb 07 |
jari |
319 |
for(int j = 0; j < map.length; j++){ |
2 |
26 Feb 07 |
jari |
320 |
if(map[j] == currIndex){ |
2 |
26 Feb 07 |
jari |
321 |
expIndices[i] = j; |
2 |
26 Feb 07 |
jari |
322 |
} |
2 |
26 Feb 07 |
jari |
323 |
} |
2 |
26 Feb 07 |
jari |
324 |
} |
2 |
26 Feb 07 |
jari |
325 |
return expIndices; |
2 |
26 Feb 07 |
jari |
326 |
} |
2 |
26 Feb 07 |
jari |
327 |
private static class ClusterPersistenceDelegate extends PersistenceDelegate { |
2 |
26 Feb 07 |
jari |
328 |
|
2 |
26 Feb 07 |
jari |
329 |
protected Expression instantiate(Object o, Encoder encoder) { |
2 |
26 Feb 07 |
jari |
330 |
Cluster oldInstance = (Cluster)o; |
2 |
26 Feb 07 |
jari |
331 |
return new Expression(oldInstance, oldInstance.getClass(), "new", |
2 |
26 Feb 07 |
jari |
332 |
new Object[]{oldInstance.indices, oldInstance.source, oldInstance.clusterLabel, |
2 |
26 Feb 07 |
jari |
333 |
oldInstance.algorithmName, oldInstance.clusterID, oldInstance.clusterDescription, |
2 |
26 Feb 07 |
jari |
334 |
new Integer(oldInstance.algorithmIndex), new Integer(oldInstance.serialNumber), oldInstance.clusterColor, |
2 |
26 Feb 07 |
jari |
335 |
oldInstance.node, oldInstance.experiment |
2 |
26 Feb 07 |
jari |
336 |
}); |
2 |
26 Feb 07 |
jari |
337 |
} |
2 |
26 Feb 07 |
jari |
338 |
public void initialize(Class type, Object oldInstance, Object newInstance, Encoder encoder) { |
2 |
26 Feb 07 |
jari |
339 |
return; |
2 |
26 Feb 07 |
jari |
340 |
} |
2 |
26 Feb 07 |
jari |
341 |
|
2 |
26 Feb 07 |
jari |
342 |
} |
2 |
26 Feb 07 |
jari |
343 |
/** |
2 |
26 Feb 07 |
jari |
* @return |
2 |
26 Feb 07 |
jari |
345 |
*/ |
2 |
26 Feb 07 |
jari |
346 |
public static PersistenceDelegate getPersistenceDelegate() { |
2 |
26 Feb 07 |
jari |
347 |
return new ClusterPersistenceDelegate(); |
2 |
26 Feb 07 |
jari |
348 |
} |
2 |
26 Feb 07 |
jari |
349 |
} |