From fe364c572aeaabb4fca69cad94bda16ae5b26473 Mon Sep 17 00:00:00 2001 From: wumpz Date: Tue, 11 Apr 2017 12:10:43 +0200 Subject: [PATCH] cleanup --- src/main/java/difflib/DiffUtils.java | 14 ++++----- .../difflib/algorithm/myers/MyersDiff.java | 30 ++++++------------- .../difflib/text/DiffRowGeneratorTest.java | 20 +++++++++++++ 3 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/main/java/difflib/DiffUtils.java b/src/main/java/difflib/DiffUtils.java index 2671cdb..eb8121f 100644 --- a/src/main/java/difflib/DiffUtils.java +++ b/src/main/java/difflib/DiffUtils.java @@ -29,6 +29,7 @@ import difflib.patch.PatchFailedException; import java.util.Collections; import java.util.LinkedList; import java.util.List; +import java.util.Objects; import static java.util.stream.Collectors.joining; /** @@ -85,15 +86,10 @@ public final class DiffUtils { */ public static Patch diff(List original, List revised, DiffAlgorithm algorithm) throws DiffException { - if (original == null) { - throw new IllegalArgumentException("original must not be null"); - } - if (revised == null) { - throw new IllegalArgumentException("revised must not be null"); - } - if (algorithm == null) { - throw new IllegalArgumentException("algorithm must not be null"); - } + Objects.requireNonNull(original,"original must not be null"); + Objects.requireNonNull(revised,"revised must not be null"); + Objects.requireNonNull(algorithm,"algorithm must not be null"); + return algorithm.diff(original, revised); } diff --git a/src/main/java/difflib/algorithm/myers/MyersDiff.java b/src/main/java/difflib/algorithm/myers/MyersDiff.java index 60ebfb0..7abcaea 100644 --- a/src/main/java/difflib/algorithm/myers/MyersDiff.java +++ b/src/main/java/difflib/algorithm/myers/MyersDiff.java @@ -32,6 +32,7 @@ import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; /** * A clean-room implementation of @@ -97,12 +98,9 @@ public final class MyersDiff implements DiffAlgorithm { */ @Override public Patch diff(final List original, final List revised) throws DiffException { - if (original == null) { - throw new IllegalArgumentException("original list must not be null"); - } - if (revised == null) { - throw new IllegalArgumentException("revised list must not be null"); - } + Objects.requireNonNull(original, "original list must not be null"); + Objects.requireNonNull(revised, "revised list must not be null"); + PathNode path = buildPath(original, revised); return buildRevision(path, original, revised); } @@ -118,12 +116,8 @@ public final class MyersDiff implements DiffAlgorithm { */ private PathNode buildPath(final List orig, final List rev) throws DifferentiationFailedException { - if (orig == null) { - throw new IllegalArgumentException("original sequence is null"); - } - if (rev == null) { - throw new IllegalArgumentException("revised sequence is null"); - } + Objects.requireNonNull(orig, "original sequence is null"); + Objects.requireNonNull(rev, "revised sequence is null"); // these are local constants final int N = orig.size(); @@ -192,15 +186,9 @@ public final class MyersDiff implements DiffAlgorithm { * path. */ private Patch buildRevision(PathNode path, List orig, List rev) { - if (path == null) { - throw new IllegalArgumentException("path is null"); - } - if (orig == null) { - throw new IllegalArgumentException("original sequence is null"); - } - if (rev == null) { - throw new IllegalArgumentException("revised sequence is null"); - } + Objects.requireNonNull(path, "path is null"); + Objects.requireNonNull(orig, "original sequence is null"); + Objects.requireNonNull(rev, "revised sequence is null"); Patch patch = new Patch<>(); if (path.isSnake()) { diff --git a/src/test/java/difflib/text/DiffRowGeneratorTest.java b/src/test/java/difflib/text/DiffRowGeneratorTest.java index 5314dde..e7c10d8 100644 --- a/src/test/java/difflib/text/DiffRowGeneratorTest.java +++ b/src/test/java/difflib/text/DiffRowGeneratorTest.java @@ -187,4 +187,24 @@ public class DiffRowGeneratorTest { assertEquals(4, list.size()); assertEquals("[test, ,, test2, ,]", list.toString()); } + + + @Test + public void testGeneratorExample1() throws DiffException { + DiffRowGenerator generator = DiffRowGenerator.create() + .showInlineDiffs(true) + .mergeOriginalRevised(true) + .inlineDiffByWord(true) + .oldTag(f -> "~") + .newTag(f -> "**") + .build(); + List rows = generator.generateDiffRows( + Arrays.asList("This is a test senctence."), + Arrays.asList("This is a test for diffutils.")); + + System.out.println(rows.get(0).getOldLine()); + + assertEquals(1, rows.size()); + assertEquals("This is a test ~senctence~**for diffutils**.", rows.get(0).getOldLine()); + } }