package com.revolsys.record.filter;
import java.util.Collection;
import java.util.HashSet;
import java.util.function.Predicate;
import com.revolsys.datatype.DataType;
import com.revolsys.geometry.model.Geometry;
import com.revolsys.record.Record;
public class RecordEqualsFilter<R extends Record> implements Predicate<R> {
private final Collection<CharSequence> equalExclude = new HashSet<>();
private final R searchRecord;
public RecordEqualsFilter(final R searchRecord) {
this(searchRecord, null);
}
public RecordEqualsFilter(final R searchRecord,
final Collection<? extends CharSequence> equalExclude) {
this.searchRecord = searchRecord;
if (equalExclude != null) {
this.equalExclude.addAll(equalExclude);
}
}
@Override
public boolean test(final R object) {
final Geometry serachGeometry = this.searchRecord.getGeometry();
final Geometry geometry = object.getGeometry();
if (DataType.equal(serachGeometry, geometry, this.equalExclude)) {
if (DataType.equal(this.searchRecord, object, this.equalExclude)) {
return true;
}
}
return false;
}
}