Improved equals and hashCode implementations in filters (LDAP-198).

This commit is contained in:
Ulrik Sandberg
2010-01-25 07:17:14 +00:00
parent dea9e15aa4
commit 15b12831de
7 changed files with 53 additions and 38 deletions

View File

@@ -87,16 +87,18 @@ public abstract class CompareFilter extends AbstractFilter {
* @see org.springframework.ldap.filter.Filter#equals(java.lang.Object)
*/
public boolean equals(Object o) {
if (o instanceof CompareFilter && o.getClass() == this.getClass()) {
CompareFilter that = (CompareFilter) o;
EqualsBuilder builder = new EqualsBuilder();
builder.append(this.attribute, that.attribute);
builder.append(this.value, that.value);
return builder.isEquals();
}
else {
if (o == null) {
return false;
}
if (o == this) {
return true;
}
if (o.getClass() != getClass()) {
return false;
}
CompareFilter f = (CompareFilter) o;
EqualsBuilder builder = new EqualsBuilder();
return builder.append(this.attribute, f.attribute).append(this.value, f.value).isEquals();
}
/**

View File

@@ -77,14 +77,17 @@ public class HardcodedFilter extends AbstractFilter {
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object o) {
if (o instanceof HardcodedFilter && o.getClass() == this.getClass()) {
HardcodedFilter f = (HardcodedFilter) o;
EqualsBuilder builder = new EqualsBuilder().append(this.filter, f.filter);
return builder.isEquals();
if (o == null) {
return false;
}
return false;
if (o == this) {
return true;
}
if (o.getClass() != getClass()) {
return false;
}
HardcodedFilter f = (HardcodedFilter) o;
return new EqualsBuilder().append(this.filter, f.filter).isEquals();
}
/*

View File

@@ -17,6 +17,8 @@
package org.springframework.ldap.filter;
import org.apache.commons.lang.Validate;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
/**
* A filter for 'not'. The following code:
@@ -66,13 +68,17 @@ public class NotFilter extends AbstractFilter {
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object o) {
if (o instanceof NotFilter && o.getClass() == this.getClass()) {
NotFilter f = (NotFilter) o;
return this.filter.equals(f.filter);
if (o == null) {
return false;
}
return false;
if (o == this) {
return true;
}
if (o.getClass() != getClass()) {
return false;
}
NotFilter f = (NotFilter) o;
return new EqualsBuilder().append(this.filter, f.filter).isEquals();
}
/*

View File

@@ -63,14 +63,17 @@ public class NotPresentFilter extends AbstractFilter {
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object o) {
if (o instanceof NotPresentFilter && o.getClass() == this.getClass()) {
NotPresentFilter f = (NotPresentFilter) o;
EqualsBuilder builder = new EqualsBuilder().append(this.attribute, f.attribute);
return builder.isEquals();
if (o == null) {
return false;
}
return false;
if (o == this) {
return true;
}
if (o.getClass() != getClass()) {
return false;
}
NotPresentFilter f = (NotPresentFilter) o;
return new EqualsBuilder().append(this.attribute, f.attribute).isEquals();
}
/*

View File

@@ -62,14 +62,17 @@ public class PresentFilter extends AbstractFilter {
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object o) {
if (o instanceof PresentFilter && o.getClass() == this.getClass()) {
PresentFilter f = (PresentFilter) o;
EqualsBuilder builder = new EqualsBuilder().append(this.attribute, f.attribute);
return builder.isEquals();
if (o == null) {
return false;
}
return false;
if (o == this) {
return true;
}
if (o.getClass() != getClass()) {
return false;
}
PresentFilter f = (PresentFilter) o;
return new EqualsBuilder().append(this.attribute, f.attribute).isEquals();
}
/*

View File

@@ -69,7 +69,6 @@ public class GreaterThanOrEqualsFilterTest extends TestCase {
GreaterThanOrEqualsFilter subclassObject = new GreaterThanOrEqualsFilter(attribute, value) {
};
new EqualsTester(originalObject, identicalObject, differentObject,
subclassObject);
new EqualsTester(originalObject, identicalObject, differentObject, subclassObject);
}
}

View File

@@ -48,5 +48,4 @@ public class NotFilterTest extends TestCase {
new EqualsTester(originalObject, identicalObject, differentObject,
subclassObject);
}
}