package com.revolsys.record.filter;
import java.util.function.Predicate;
import com.revolsys.geometry.graph.linestring.LineStringRelate;
import com.revolsys.geometry.model.LineString;
import com.revolsys.record.Record;
public class LineEqualWithinDistance implements Predicate<LineString> {
public static Predicate<Record> getFilter(final Record object, final double maxDistance) {
final LineString line = object.getGeometry();
final LineEqualWithinDistance lineFilter = new LineEqualWithinDistance(line, maxDistance);
return new RecordGeometryFilter<>(lineFilter);
}
private final LineString line;
private final double maxDistance;
public LineEqualWithinDistance(final LineString line, final double maxDistance) {
this.line = line;
this.maxDistance = maxDistance;
}
@Override
public boolean test(final LineString line2) {
final LineStringRelate relate = new LineStringRelate(this.line, line2, this.maxDistance);
return relate.isEqual();
}
}