Title: [1268] trunk/qdox/src/test/java/com/thoughtworks/qdox/model: Fix QDOX-232: DefaultJavaMethod.equals() was invalid for getName() and getReturns()
Revision
1268
Author
rfscholte
Date
2011-07-16 04:39:37 -0500 (Sat, 16 Jul 2011)

Log Message

Fix QDOX-232: DefaultJavaMethod.equals() was invalid for getName() and getReturns()

Modified Paths

Diff

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaMethod.java (1267 => 1268)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaMethod.java	2011-06-19 19:52:52 UTC (rev 1267)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaMethod.java	2011-07-16 09:39:37 UTC (rev 1268)
@@ -116,8 +116,7 @@
             }
         }
         result.append(')');
-        if (isDeclaration) {
-            if (getExceptions().size() > 0) {
+        if (isDeclaration  && !getExceptions().isEmpty() ) {
                 result.append(" throws ");
                 for(Iterator<Type> excIter = getExceptions().iterator();excIter.hasNext();) {
                     result.append(excIter.next().getValue());
@@ -125,7 +124,6 @@
                         result.append(", ");
                     }
                 }
-            }
         }
         return result.toString();
     }
@@ -151,49 +149,52 @@
     }
 
     @Override
-    public boolean equals( Object obj ) 
+    public boolean equals( Object obj )
     {
-        if ( this == obj ) 
+        if ( this == obj )
         {
-          return true;    
+            return true;
         }
-        if ( !( obj instanceof JavaMethod ) ) 
+        if ( !( obj instanceof JavaMethod ) )
         {
             return false;
         }
-        
-        JavaMethod m = (JavaMethod) obj;
 
-        if ( m.getName() == null) 
+        JavaMethod other = (JavaMethod) obj;
+        //use 'this' from here to make it better readable
+        if ( other.getName() != null && !other.getName().equals( this.getName() ) )
         {
-            return (getName() == null);
+            return false;
         }
-        if (!m.getName().equals(getName())) 
+        if ( this.getName() != null && !this.getName().equals( other.getName() ) )
         {
             return false;
         }
-        
-        if (m.getReturns() == null) {
-            return (getReturns() == null);
+
+        if ( other.getReturns() != null && !other.getReturns().equals( this.getReturns() ) )
+        {
+            return false;
         }
-        if (!m.getReturns().equals(getReturns())) {
+        if ( this.getReturns() != null && !this.getReturns().equals( other.getReturns() ) )
+        {
             return false;
         }
 
-        List<JavaParameter> myParams = getParameters();
-        List<JavaParameter> otherParams = m.getParameters();
-        if (otherParams.size() != myParams.size()) 
+        List<JavaParameter> thisParams = this.getParameters();
+        List<JavaParameter> otherParams = other.getParameters();
+        if ( otherParams.size() != thisParams.size() )
         {
             return false;
         }
-        for (int i = 0; i < myParams.size(); i++) 
+        for ( int i = 0; i < thisParams.size(); i++ )
         {
-            if (!otherParams.get(i).equals(myParams.get(i))) {
+            if ( !otherParams.get( i ).equals( thisParams.get( i ) ) )
+            {
                 return false;
             }
         }
 
-        return this.isVarArgs() == m.isVarArgs();
+        return this.isVarArgs() == other.isVarArgs();
     }
 
     @Override

Modified: trunk/qdox/src/test/java/com/thoughtworks/qdox/model/JavaMethodTest.java (1267 => 1268)

--- trunk/qdox/src/test/java/com/thoughtworks/qdox/model/JavaMethodTest.java	2011-06-19 19:52:52 UTC (rev 1267)
+++ trunk/qdox/src/test/java/com/thoughtworks/qdox/model/JavaMethodTest.java	2011-07-16 09:39:37 UTC (rev 1268)
@@ -191,11 +191,21 @@
         setName(m4, "thing");
         setReturns(m4, newType("int"));
 
+        M m5 = newJavaMethod();
+        M m6 = newJavaMethod();
+        
+        M m7 = newJavaMethod();
+        setReturns(m7, newType("int"));
+
         assertEquals(mth, m2);
         assertEquals(m2, mth);
         assertNotEquals(mth, m3);
         assertNotEquals(mth, m4);
         assertFalse(mth.equals(null));
+        assertNotEquals( m4, m5 );
+        assertNotEquals( m5, m4 );
+        assertEquals( m5, m6 );
+        assertNotEquals( m5, m7 );
     }
 
     public void testEqualsWithParameters() throws Exception {


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to