Author: [log in to unmask]
Date: Mon Dec 15 15:56:47 2014
New Revision: 1739
Log:
Implement sorting on channel ID.
Modified:
java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannel.java
Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannel.java
=============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannel.java (original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannel.java Mon Dec 15 15:56:47 2014
@@ -1,12 +1,15 @@
package org.hps.conditions.ecal;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.hps.conditions.api.AbstractConditionsObject;
+import org.hps.conditions.api.AbstractConditionsObjectCollection;
import org.hps.conditions.api.AbstractIdentifier;
-import org.hps.conditions.api.AbstractConditionsObjectCollection;
-import org.hps.conditions.api.ConditionsObjectException;
import org.lcsim.detector.identifier.ExpandedIdentifier;
import org.lcsim.detector.identifier.IExpandedIdentifier;
import org.lcsim.detector.identifier.IIdentifierHelper;
@@ -106,6 +109,20 @@
public boolean isValid() {
return id != -1;
}
+ }
+
+ private static final class ChannelIdComparator implements Comparator<EcalChannel> {
+
+ public int compare(EcalChannel c1, EcalChannel c2) {
+ if (c1.getChannelId() < c2.getChannelId()) {
+ return -1;
+ } else if (c1.getChannelId() > c2.getChannelId()) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+
}
DaqId createDaqId() {
@@ -212,6 +229,16 @@
public EcalChannel findDaq(long id) {
return daqMap.get(id);
}
+
+ /**
+ * Get a list of channels sorted by channel ID.
+ * @return A list of channels sorted by channel ID.
+ */
+ public List<EcalChannel> sortedByChannelId() {
+ List<EcalChannel> channelList = new ArrayList<EcalChannel>(this);
+ Collections.sort(channelList, new ChannelIdComparator());
+ return channelList;
+ }
}
/**
|