2424import difflib .algorithm .DiffAlgorithm ;
2525import difflib .algorithm .DiffException ;
2626import difflib .patch .DeltaType ;
27- import difflib .patch .Equalizer ;
2827import difflib .patch .Patch ;
2928import java .util .ArrayList ;
3029import java .util .List ;
3130import java .util .Objects ;
31+ import java .util .function .BiPredicate ;
3232
3333/**
3434 * A clean-room implementation of Eugene Myers greedy differencing algorithm.
@@ -38,12 +38,12 @@ public final class MyersDiff<T> implements DiffAlgorithm<T> {
3838 /**
3939 * Default equalizer.
4040 */
41- private final Equalizer < T > DEFAULT_EQUALIZER = Object ::equals ;
41+ private final BiPredicate < T , T > DEFAULT_EQUALIZER = Object ::equals ;
4242
4343 /**
4444 * The equalizer.
4545 */
46- private final Equalizer < T > equalizer ;
46+ private final BiPredicate < T , T > equalizer ;
4747
4848 /**
4949 * Constructs an instance of the Myers differencing algorithm.
@@ -57,7 +57,7 @@ public MyersDiff() {
5757 *
5858 * @param equalizer Must not be {@code null}.
5959 */
60- public MyersDiff (final Equalizer < T > equalizer ) {
60+ public MyersDiff (final BiPredicate < T , T > equalizer ) {
6161 Objects .requireNonNull (equalizer , "equalizer must not be null" );
6262 this .equalizer = equalizer ;
6363 }
@@ -123,7 +123,7 @@ private PathNode buildPath(final List<T> orig, final List<T> rev)
123123
124124 PathNode node = new PathNode (i , j , false , false , prev );
125125
126- while (i < N && j < M && equalizer .equals (orig .get (i ), rev .get (j ))) {
126+ while (i < N && j < M && equalizer .test (orig .get (i ), rev .get (j ))) {
127127 i ++;
128128 j ++;
129129 }
0 commit comments