- 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:
