GeomConverter/src/org/lcsim/geometry/segmentation
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
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)