Print

Print


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