public final class DiffRowGenerator
extends java.lang.Object
DiffRowGenerator generator = new DiffRowGenerator.Builder().showInlineDiffs(true).
ignoreWhiteSpaces(true).columnWidth(100).build();
Modifier and Type | Class and Description |
---|---|
static class |
DiffRowGenerator.Builder
This class used for building the DiffRowGenerator.
|
Modifier and Type | Field and Description |
---|---|
private int |
columnWidth |
private boolean |
decompressDeltas |
static java.util.function.BiPredicate<java.lang.String,java.lang.String> |
DEFAULT_EQUALIZER |
private java.util.function.BiPredicate<java.lang.String,java.lang.String> |
equalizer |
static java.util.function.BiPredicate<java.lang.String,java.lang.String> |
IGNORE_WHITESPACE_EQUALIZER |
private boolean |
ignoreWhiteSpaces |
private java.util.function.Function<java.lang.String,java.util.List<java.lang.String>> |
inlineDiffSplitter |
static java.util.function.Function<java.lang.String,java.lang.String> |
LINE_NORMALIZER_FOR_HTML |
private java.util.function.Function<java.lang.String,java.lang.String> |
lineNormalizer |
private boolean |
mergeOriginalRevised |
private java.util.function.BiFunction<DiffRow.Tag,java.lang.Boolean,java.lang.String> |
newTag |
private java.util.function.BiFunction<DiffRow.Tag,java.lang.Boolean,java.lang.String> |
oldTag |
private java.util.function.Function<java.lang.String,java.lang.String> |
processDiffs |
private boolean |
replaceOriginalLinefeedInChangesWithSpaces |
private boolean |
reportLinesUnchanged |
private boolean |
showInlineDiffs |
static java.util.regex.Pattern |
SPLIT_BY_WORD_PATTERN |
static java.util.function.Function<java.lang.String,java.util.List<java.lang.String>> |
SPLITTER_BY_CHARACTER
Splitting lines by character to achieve char by char diff checking.
|
static java.util.function.Function<java.lang.String,java.util.List<java.lang.String>> |
SPLITTER_BY_WORD
Splitting lines by word to achieve word by word diff checking.
|
static java.util.regex.Pattern |
WHITESPACE_PATTERN |
Modifier | Constructor and Description |
---|---|
private |
DiffRowGenerator(DiffRowGenerator.Builder builder) |
Modifier and Type | Method and Description |
---|---|
private static java.lang.String |
adjustWhitespace(java.lang.String raw) |
private DiffRow |
buildDiffRow(DiffRow.Tag type,
java.lang.String orgline,
java.lang.String newline) |
private DiffRow |
buildDiffRowWithoutNormalizing(DiffRow.Tag type,
java.lang.String orgline,
java.lang.String newline) |
static DiffRowGenerator.Builder |
create() |
private java.util.List<AbstractDelta<java.lang.String>> |
decompressDeltas(AbstractDelta<java.lang.String> delta)
Decompresses ChangeDeltas with different source and target size to a
ChangeDelta with same size and a following InsertDelta or DeleteDelta.
|
java.util.List<DiffRow> |
generateDiffRows(java.util.List<java.lang.String> original,
java.util.List<java.lang.String> revised)
Get the DiffRows describing the difference between original and revised
texts using the given patch.
|
java.util.List<DiffRow> |
generateDiffRows(java.util.List<java.lang.String> original,
Patch<java.lang.String> patch)
Generates the DiffRows describing the difference between original and
revised texts using the given patch.
|
private java.util.List<DiffRow> |
generateInlineDiffs(AbstractDelta<java.lang.String> delta)
Add the inline diffs for given delta
|
(package private) java.util.List<java.lang.String> |
normalizeLines(java.util.List<java.lang.String> list) |
private java.lang.String |
preprocessLine(java.lang.String line) |
protected static java.util.List<java.lang.String> |
splitStringPreserveDelimiter(java.lang.String str,
java.util.regex.Pattern SPLIT_PATTERN) |
private int |
transformDeltaIntoDiffRow(java.util.List<java.lang.String> original,
int endPos,
java.util.List<DiffRow> diffRows,
AbstractDelta<java.lang.String> delta)
Transforms one patch delta into a DiffRow object.
|
(package private) static void |
wrapInTag(java.util.List<java.lang.String> sequence,
int startPosition,
int endPosition,
DiffRow.Tag tag,
java.util.function.BiFunction<DiffRow.Tag,java.lang.Boolean,java.lang.String> tagGenerator,
java.util.function.Function<java.lang.String,java.lang.String> processDiffs,
boolean replaceLinefeedWithSpace)
Wrap the elements in the sequence with the given tag
|
public static final java.util.function.BiPredicate<java.lang.String,java.lang.String> DEFAULT_EQUALIZER
public static final java.util.function.BiPredicate<java.lang.String,java.lang.String> IGNORE_WHITESPACE_EQUALIZER
public static final java.util.function.Function<java.lang.String,java.lang.String> LINE_NORMALIZER_FOR_HTML
public static final java.util.function.Function<java.lang.String,java.util.List<java.lang.String>> SPLITTER_BY_CHARACTER
public static final java.util.regex.Pattern SPLIT_BY_WORD_PATTERN
public static final java.util.function.Function<java.lang.String,java.util.List<java.lang.String>> SPLITTER_BY_WORD
public static final java.util.regex.Pattern WHITESPACE_PATTERN
private final int columnWidth
private final java.util.function.BiPredicate<java.lang.String,java.lang.String> equalizer
private final boolean ignoreWhiteSpaces
private final java.util.function.Function<java.lang.String,java.util.List<java.lang.String>> inlineDiffSplitter
private final boolean mergeOriginalRevised
private final java.util.function.BiFunction<DiffRow.Tag,java.lang.Boolean,java.lang.String> newTag
private final java.util.function.BiFunction<DiffRow.Tag,java.lang.Boolean,java.lang.String> oldTag
private final boolean reportLinesUnchanged
private final java.util.function.Function<java.lang.String,java.lang.String> lineNormalizer
private final java.util.function.Function<java.lang.String,java.lang.String> processDiffs
private final boolean showInlineDiffs
private final boolean replaceOriginalLinefeedInChangesWithSpaces
private final boolean decompressDeltas
private DiffRowGenerator(DiffRowGenerator.Builder builder)
public static DiffRowGenerator.Builder create()
private static java.lang.String adjustWhitespace(java.lang.String raw)
protected static final java.util.List<java.lang.String> splitStringPreserveDelimiter(java.lang.String str, java.util.regex.Pattern SPLIT_PATTERN)
static void wrapInTag(java.util.List<java.lang.String> sequence, int startPosition, int endPosition, DiffRow.Tag tag, java.util.function.BiFunction<DiffRow.Tag,java.lang.Boolean,java.lang.String> tagGenerator, java.util.function.Function<java.lang.String,java.lang.String> processDiffs, boolean replaceLinefeedWithSpace)
startPosition
- the position from which tag should start. The
counting start from a zero.endPosition
- the position before which tag should should be closed.tagGenerator
- the tag generatorpublic java.util.List<DiffRow> generateDiffRows(java.util.List<java.lang.String> original, java.util.List<java.lang.String> revised)
original
- the original textrevised
- the revised textpublic java.util.List<DiffRow> generateDiffRows(java.util.List<java.lang.String> original, Patch<java.lang.String> patch)
original
- the original textpatch
- the given patchprivate int transformDeltaIntoDiffRow(java.util.List<java.lang.String> original, int endPos, java.util.List<DiffRow> diffRows, AbstractDelta<java.lang.String> delta)
private java.util.List<AbstractDelta<java.lang.String>> decompressDeltas(AbstractDelta<java.lang.String> delta)
deltaList
- private DiffRow buildDiffRow(DiffRow.Tag type, java.lang.String orgline, java.lang.String newline)
private DiffRow buildDiffRowWithoutNormalizing(DiffRow.Tag type, java.lang.String orgline, java.lang.String newline)
java.util.List<java.lang.String> normalizeLines(java.util.List<java.lang.String> list)
private java.util.List<DiffRow> generateInlineDiffs(AbstractDelta<java.lang.String> delta)
delta
- the given deltaprivate java.lang.String preprocessLine(java.lang.String line)