Commit in GeomConverter/src/org/lcsim/detector on MAIN
PhysicalVolumeContainer.java+27-71.3 -> 1.4
Changed so it uses a HashMap for the findByName rather than an ArrayList

GeomConverter/src/org/lcsim/detector
PhysicalVolumeContainer.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- PhysicalVolumeContainer.java	20 Mar 2007 23:57:50 -0000	1.3
+++ PhysicalVolumeContainer.java	28 Jan 2008 00:23:02 -0000	1.4
@@ -1,6 +1,8 @@
 package org.lcsim.detector;
 
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 
 public class PhysicalVolumeContainer 
 extends ArrayList<IPhysicalVolume> 
@@ -45,6 +47,8 @@
 	public PhysicalVolumeContainer()
 	{}
 	
+        private HashMap<String,List<IPhysicalVolume>> map = new HashMap<String,List<IPhysicalVolume>>(); 
+        
 	public PhysicalVolumeContainer(
             boolean uniqPhysVol, 
             boolean uniqName, 
@@ -55,10 +59,24 @@
 		this.uniqCopyNum= uniqCopyNum;
 	}
 	
+        @Override
 	public boolean add(IPhysicalVolume physvol) 
 	{
         try {
             checkAdd(physvol);
+            
+            String name = physvol.getName();
+            
+            List<IPhysicalVolume> l; 
+            if (map.containsKey(name)) {
+                l = map.get(name);
+            }
+            
+            else {
+                l = new ArrayList<IPhysicalVolume>(); 
+            }
+            l.add(physvol);
+            map.put(name, l);
             super.add(physvol);
         }
         catch ( PhysicalVolumeContainerException x )
@@ -87,13 +105,15 @@
 	public PhysicalVolumeContainer findByName(String name)
 	{
 		PhysicalVolumeContainer physvols = new PhysicalVolumeContainer();
-		for (IPhysicalVolume physvol : this)
-		{
-			if (physvol.getName().equals(name))
-			{
-				physvols.add(physvol);
-			}
-		}
+//		for (IPhysicalVolume physvol : this)
+//		{
+//			if (physvol.getName().equals(name))
+//			{
+//				physvols.add(physvol);
+//			}
+//		}
+                if (map.containsKey(name)) 
+                    physvols.addAll(map.get(name)); 
 		return physvols;
 	}
 	
CVSspam 0.2.8