From 106e7bebe47bc08d8f23df75844aab9130ba647a Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Thu, 12 Jan 2017 14:46:35 +0300 Subject: [PATCH] diff: remove unnecessary inheritance --- .../comparison/ComparisonManagerImpl.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/platform/diff-impl/src/com/intellij/diff/comparison/ComparisonManagerImpl.java b/platform/diff-impl/src/com/intellij/diff/comparison/ComparisonManagerImpl.java index fb4b1fec6ff8..2fbc8f41abea 100644 --- a/platform/diff-impl/src/com/intellij/diff/comparison/ComparisonManagerImpl.java +++ b/platform/diff-impl/src/com/intellij/diff/comparison/ComparisonManagerImpl.java @@ -45,7 +45,11 @@ public class ComparisonManagerImpl extends ComparisonManager { @NotNull ProgressIndicator indicator) throws DiffTooBigException { List lines1 = getLines(text1); List lines2 = getLines(text2); - FairDiffIterable iterable = ByLine.compare(lines1, lines2, policy, indicator); + + List lineTexts1 = ContainerUtil.map(lines1, Line::getContent); + List lineTexts2 = ContainerUtil.map(lines2, Line::getContent); + + FairDiffIterable iterable = ByLine.compare(lineTexts1, lineTexts2, policy, indicator); return convertIntoLineFragments(lines1, lines2, iterable); } @@ -59,7 +63,12 @@ public class ComparisonManagerImpl extends ComparisonManager { List lines1 = getLines(text1); List lines2 = getLines(text2); List lines3 = getLines(text3); - List ranges = ByLine.compare(lines1, lines2, lines3, policy, indicator); + + List lineTexts1 = ContainerUtil.map(lines1, Line::getContent); + List lineTexts2 = ContainerUtil.map(lines2, Line::getContent); + List lineTexts3 = ContainerUtil.map(lines3, Line::getContent); + + List ranges = ByLine.compare(lineTexts1, lineTexts2, lineTexts3, policy, indicator); return convertIntoMergeLineFragments(ranges); } @@ -402,13 +411,14 @@ public class ComparisonManagerImpl extends ComparisonManager { return lines; } - private static class Line extends CharSequenceSubSequence { + private static class Line { + @NotNull private final CharSequence myChars; private final int myOffset1; private final int myOffset2; private final boolean myNewline; public Line(@NotNull CharSequence chars, int offset1, int offset2, boolean newline) { - super(chars, offset1, offset2); + myChars = chars; myOffset1 = offset1; myOffset2 = offset2; myNewline = newline; @@ -421,5 +431,10 @@ public class ComparisonManagerImpl extends ComparisonManager { public int getOffset2() { return myOffset2 + (myNewline ? 1 : 0); } + + @NotNull + public CharSequence getContent() { + return new CharSequenceSubSequence(myChars, myOffset1, myOffset2); + } } }