Author: [log in to unmask]
Date: Thu Oct 8 22:14:01 2015
New Revision: 3673
Log:
Prevent the map of IDs to detector elements from returning a null ref.
Modified:
projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/DetectorElementIdentifierHash.java
Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/DetectorElementIdentifierHash.java
=============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/DetectorElementIdentifierHash.java (original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/DetectorElementIdentifierHash.java Thu Oct 8 22:14:01 2015
@@ -6,61 +6,60 @@
import org.lcsim.detector.identifier.IIdentifier;
-public class DetectorElementIdentifierHash
-{
- private Map<Long, IDetectorElementContainer> idhash = new HashMap<Long, IDetectorElementContainer>();
-
- public void put(IDetectorElement de)
- {
- IIdentifier id = de.getIdentifier();
-
- // Ignore null id.
- if (id == null)
- {
- return;
- }
-
- // Ignore invalid id.
- if (!id.isValid())
- {
- return;
- }
-
- Long rawid = id.getValue();
-
- // Create list if doesn't exist.
- if (idhash.get(rawid) == null)
- {
- idhash.put(rawid, new DetectorElementContainer());
- }
-
- // Add a hash from id to DetectorElement.
- idhash.get(rawid).add(de);
- }
-
- public IDetectorElementContainer get(IIdentifier id)
- {
- return idhash.get(id.getValue());
- }
-
- public IDetectorElementContainer get(Long rawid)
- {
- return idhash.get(rawid);
- }
-
- public IDetectorElementContainer get(List<IIdentifier> ids)
- {
- IDetectorElementContainer ret = new DetectorElementContainer();
- for (IIdentifier id : ids)
- {
- IDetectorElementContainer src = get(id);
- ret.addAll(src);
- }
- return ret;
- }
-
- public void clear()
- {
- idhash.clear();
- }
+public class DetectorElementIdentifierHash {
+
+ private Map<Long, IDetectorElementContainer> idhash = new HashMap<Long, IDetectorElementContainer>();
+
+ public void put(IDetectorElement de) {
+
+ IIdentifier id = de.getIdentifier();
+
+ // Ignore null id.
+ if (id == null) {
+ return;
+ }
+
+ // Ignore invalid id.
+ if (!id.isValid()) {
+ System.out.println("ignoring invalid ID " + de.getIdentifier().getValue() + " from " + de.getName());
+ return;
+ }
+
+ Long rawid = id.getValue();
+
+ // Create list if doesn't exist.
+ if (idhash.get(rawid) == null) {
+ idhash.put(rawid, new DetectorElementContainer());
+ } else {
+ System.out.println("WARNING: already have container for ID " + rawid);
+ }
+
+ // Add a hash from id to DetectorElement.
+ idhash.get(rawid).add(de);
+ }
+
+ public IDetectorElementContainer get(IIdentifier id) {
+ return get(id.getValue());
+ }
+
+ public IDetectorElementContainer get(Long rawid) {
+ IDetectorElementContainer container = idhash.get(rawid);
+ if (container == null) {
+ container = new DetectorElementContainer();
+ }
+ return container;
+ }
+
+ public IDetectorElementContainer get(List<IIdentifier> ids) {
+ IDetectorElementContainer ret = new DetectorElementContainer();
+ for (IIdentifier id : ids) {
+ IDetectorElementContainer src = get(id);
+ ret.addAll(src);
+ }
+ return ret;
+ }
+
+ public void clear() {
+ idhash.clear();
+ }
}
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the LCDET-SVN list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1
|