Improved equals and hashCode implementations in filters (LDAP-198).
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,5 +48,4 @@ public class NotFilterTest extends TestCase {
|
||||
new EqualsTester(originalObject, identicalObject, differentObject,
|
||||
subclassObject);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user