Commit in GeomConverter/src/org/lcsim/geometry on MAIN
segmentation/GridXYZ.java+8-11.20 -> 1.21
util/IDDescriptor.java+9-81.6 -> 1.7
+17-9
2 modified files
Change IDDecoder to throw IllegalArgumentException for non-existant field.

GeomConverter/src/org/lcsim/geometry/segmentation
GridXYZ.java 1.20 -> 1.21
diff -u -r1.20 -r1.21
--- GridXYZ.java	15 Mar 2006 23:47:33 -0000	1.20
+++ GridXYZ.java	22 Jul 2006 00:09:03 -0000	1.21
@@ -323,7 +323,14 @@
             zIndex = id.indexOf("z");
         }
 
-	barrelIndex = id.indexOf("barrel");
+        try
+        {
+            barrelIndex = id.indexOf("barrel");
+        }
+        catch (IllegalArgumentException x)
+        {
+            barrelIndex = -1;
+        }
 	systemIndex = id.indexOf("system");
     }
 

GeomConverter/src/org/lcsim/geometry/util
IDDescriptor.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- IDDescriptor.java	7 Feb 2006 18:47:28 -0000	1.6
+++ IDDescriptor.java	22 Jul 2006 00:09:04 -0000	1.7
@@ -21,7 +21,7 @@
 	private int[] start;
 	private int[] length;
 	private String[] name;
-	private Map nameMap = new HashMap();
+	private Map<String,Integer> nameMap = new HashMap<String,Integer>();
 	private int maxBit;
 	private int nfields;
 
@@ -43,7 +43,7 @@
 				if (subFields.length < 2 || subFields.length > 3)
 					throw new RuntimeException("Invalid subfield: " + fields[i]);
 				name[i] = subFields[0].trim();
-				nameMap.put(name[i], new Integer(i));
+				nameMap.put(name[i],i);
 				if (subFields.length == 3)
 				{
 					start[i] = Integer.parseInt(subFields[1]);
@@ -73,19 +73,20 @@
 	{
 		return name.length;
 	}
-
-	public int indexOf(String name) 
+        /** 
+         * Returns the index of the specified field.
+         * @throws IllegalArgumentException If the requested field does not exist.
+         */
+	public int indexOf(String name) throws IllegalArgumentException
 	{
-		int idx = INVALID_INDEX;
 		if (nameMap.get(name) != null)
 		{
-			idx = ((Number) nameMap.get(name)).intValue();
+			return nameMap.get(name);
 		}
 		else 
 		{
-			System.err.println("WARNING: Requested field " + name + " does not exist in this IDDescriptor");
+			throw new IllegalArgumentException("Invalid field name: "+name);
 		}
-		return idx;
 	}
 
 	public int fieldStart(int index)
CVSspam 0.2.8