Commit in GeomConverter on MAIN
src/org/lcsim/detector/identifier/ExpandedIdentifier.java+22-51.8 -> 1.9
                                 /IExpandedIdentifier.java+3-21.9 -> 1.10
                                 /Identifier.java+6-11.7 -> 1.8
test/org/lcsim/detector/identifier/ExpandedIdentifierTest.java+61added 1.1
+92-8
1 added + 3 modified, total 4 files
JM: more sensible implementation of equals and hashCode for Identifier and ExpandedIdentifier

GeomConverter/src/org/lcsim/detector/identifier
ExpandedIdentifier.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- ExpandedIdentifier.java	25 Sep 2007 23:43:36 -0000	1.8
+++ ExpandedIdentifier.java	20 Nov 2007 20:30:03 -0000	1.9
@@ -7,7 +7,7 @@
  * Implementation of {@link IExpandedIdentifier}.
  *
  * @author Jeremy McCormick
- * @version $Id: ExpandedIdentifier.java,v 1.8 2007/09/25 23:43:36 jeremy Exp $
+ * @version $Id: ExpandedIdentifier.java,v 1.9 2007/11/20 20:30:03 jeremy Exp $
  */
 
 public class ExpandedIdentifier
@@ -143,7 +143,7 @@
             buff.append("/" + value);
         }
         return buff.toString();
-    }       
+    }   
     
     public boolean equals(IExpandedIdentifier id)
     {
@@ -159,7 +159,24 @@
                 return false;
             }            
         }
-        return true;
+        return true;   
+    }
+    
+    public int hashCode()
+    {
+        return values.hashCode();
+    }
+    
+    public boolean equals(Object object)
+    {                
+        if (object instanceof IExpandedIdentifier)
+        {
+            return equals((IExpandedIdentifier)object);
+        }
+        else
+        {
+            return false;
+        }
     }
 
     public int match( IExpandedIdentifier id )
@@ -190,8 +207,8 @@
     {
         if ( idx > getMaxIndex() || idx > id.getMaxIndex() )
         {
-            throw new IllegalArgumentException( "Index is invalid <" + idx + ">.");
+            throw new IllegalArgumentException( "The index argument <" + idx + "> is out of range.");
         }
         return Integer.valueOf( getValue( idx ) ).compareTo( id.getValue( idx ) );
-    }
+    }    
 }

GeomConverter/src/org/lcsim/detector/identifier
IExpandedIdentifier.java 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- IExpandedIdentifier.java	28 Aug 2007 22:25:46 -0000	1.9
+++ IExpandedIdentifier.java	20 Nov 2007 20:30:03 -0000	1.10
@@ -10,7 +10,7 @@
  * see which indices correspond to which field labels. 
  * 
  * @author  jeremym
- * @version $Id: IExpandedIdentifier.java,v 1.9 2007/08/28 22:25:46 jeremy Exp $
+ * @version $Id: IExpandedIdentifier.java,v 1.10 2007/11/20 20:30:03 jeremy Exp $
  */
 
 public interface IExpandedIdentifier
@@ -69,7 +69,8 @@
     /**
      * True if identifiers are logically equivalent.
      */
-    public boolean equals(IExpandedIdentifier id);
+    //public boolean equals(IExpandedIdentifier id);
+    public boolean equals(Object object);
         
     /**
      * Compares identifiers on prefix fields.

GeomConverter/src/org/lcsim/detector/identifier
Identifier.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- Identifier.java	25 Sep 2007 23:43:36 -0000	1.7
+++ Identifier.java	20 Nov 2007 20:30:03 -0000	1.8
@@ -4,7 +4,7 @@
  * Implementation of {@link IIdentifier}.
  * 
  * @author Jeremy McCormick
- * @version $Id: Identifier.java,v 1.7 2007/09/25 23:43:36 jeremy Exp $
+ * @version $Id: Identifier.java,v 1.8 2007/11/20 20:30:03 jeremy Exp $
  */
 public class Identifier
 implements IIdentifier
@@ -99,6 +99,11 @@
         }        
     }    
     
+    public int hashCode()
+    {
+        return Long.valueOf(value).hashCode();
+    }
+    
     public boolean equals( Object object )
     {
         return compareTo( object ) == 0;

GeomConverter/test/org/lcsim/detector/identifier
ExpandedIdentifierTest.java added at 1.1
diff -N ExpandedIdentifierTest.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ExpandedIdentifierTest.java	20 Nov 2007 20:30:04 -0000	1.1
@@ -0,0 +1,61 @@
+package org.lcsim.detector.identifier;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+/**
+ * Simple tests of the {@link ExpandedIdentifier} class.
+ *
+ * @author Jeremy McCormick
+ * @version $Id: ExpandedIdentifierTest.java,v 1.1 2007/11/20 20:30:04 jeremy Exp $
+ */
+
+public class ExpandedIdentifierTest
+extends TestCase
+{    
+    public void testEquals()
+    {        
+        ExpandedIdentifier id1 = new ExpandedIdentifier();
+        id1.addValue(1);
+        id1.addValue(2);
+        ExpandedIdentifier id2 = new ExpandedIdentifier();
+        id2.addValue(1);
+        id2.addValue(2);
+        
+        assertTrue(id1.equals(id2));
+        assertTrue(id2.equals(id1));
+        
+        Map<ExpandedIdentifier,Integer> testMap = new HashMap<ExpandedIdentifier,Integer>();
+        
+        testMap.put(id1, 1);
+        testMap.put(id2, 2);
+        
+        assertTrue(testMap.size() == 1);
+        assertTrue(testMap.get(id2) == 2);
+    }
+    
+    public void testNotEquals()
+    {       
+        ExpandedIdentifier id1 = new ExpandedIdentifier();
+        id1.addValue(1);
+        id1.addValue(2);
+        ExpandedIdentifier id2 = new ExpandedIdentifier();
+        id2.addValue(1);
+        id2.addValue(2);
+        id2.addValue(3);
+        
+        assertTrue(!id1.equals(id2));
+        assertTrue(!id2.equals(id1));
+        
+        Map<ExpandedIdentifier,Integer> testMap = new HashMap<ExpandedIdentifier,Integer>();
+        
+        testMap.put(id1, 1);
+        testMap.put(id2, 2);
+        
+        assertTrue(testMap.size() == 2);
+        assertTrue(testMap.get(id1) == 1);
+        assertTrue(testMap.get(id2) == 2);       
+    }
+}
CVSspam 0.2.8