Skip to content

Commit ea849a9

Browse files
committed
replaced equalizer by BiPredicate
1 parent aefbb2d commit ea849a9

File tree

4 files changed

+11
-48
lines changed

4 files changed

+11
-48
lines changed

src/main/java/difflib/DiffUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@
2323
import difflib.algorithm.DiffException;
2424
import difflib.algorithm.myers.MyersDiff;
2525
import difflib.patch.Delta;
26-
import difflib.patch.Equalizer;
2726
import difflib.patch.Patch;
2827
import difflib.patch.PatchFailedException;
2928
import java.util.Arrays;
3029
import java.util.Collections;
3130
import java.util.LinkedList;
3231
import java.util.List;
3332
import java.util.Objects;
33+
import java.util.function.BiPredicate;
3434
import static java.util.stream.Collectors.joining;
3535

3636
/**
@@ -74,7 +74,7 @@ public static Patch<String> diff(String originalText, String revisedText) throws
7474
* {@code null}.
7575
*/
7676
public static <T> Patch<T> diff(List<T> original, List<T> revised,
77-
Equalizer<T> equalizer) throws DiffException {
77+
BiPredicate<T,T> equalizer) throws DiffException {
7878
if (equalizer != null) {
7979
return DiffUtils.diff(original, revised,
8080
new MyersDiff<>(equalizer));

src/main/java/difflib/algorithm/myers/MyersDiff.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424
import difflib.algorithm.DiffAlgorithm;
2525
import difflib.algorithm.DiffException;
2626
import difflib.patch.DeltaType;
27-
import difflib.patch.Equalizer;
2827
import difflib.patch.Patch;
2928
import java.util.ArrayList;
3029
import java.util.List;
3130
import 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
}

src/main/java/difflib/patch/Equalizer.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

src/main/java/difflib/text/DiffRowGenerator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
import difflib.patch.Chunk;
2626
import difflib.patch.DeleteDelta;
2727
import difflib.patch.Delta;
28-
import difflib.patch.Equalizer;
2928
import difflib.patch.InsertDelta;
3029
import difflib.patch.Patch;
3130
import difflib.text.DiffRow.Tag;
3231
import java.util.*;
32+
import java.util.function.BiPredicate;
3333
import java.util.function.Function;
3434
import java.util.regex.Matcher;
3535
import java.util.regex.Pattern;
@@ -56,7 +56,7 @@ public class DiffRowGenerator {
5656
private final Function<Boolean, String> newTag;
5757
private final boolean inlineDiffByWord;
5858
private final int columnWidth;
59-
private final Equalizer<String> equalizer;
59+
private final BiPredicate<String, String> equalizer;
6060
private final boolean mergeOriginalRevised;
6161

6262
/**
@@ -172,9 +172,9 @@ public static Builder create() {
172172
return new Builder();
173173
}
174174

175-
public static final Equalizer<String> IGNORE_WHITESPACE_EQUALIZER = (original, revised)
175+
public static final BiPredicate<String,String> IGNORE_WHITESPACE_EQUALIZER = (original, revised)
176176
-> original.trim().replaceAll("\\s+", " ").equals(revised.trim().replaceAll("\\s+", " "));
177-
public static final Equalizer<String> DEFAULT_EQUALIZER = Object::equals;
177+
public static final BiPredicate<String,String> DEFAULT_EQUALIZER = Object::equals;
178178

179179
private DiffRowGenerator(Builder builder) {
180180
showInlineDiffs = builder.showInlineDiffs;

0 commit comments

Comments
 (0)