public final class RangeDifferencer extends Object
RangeDifferencer finds the differences between two or three
IRangeComparators.
To use the differencer, clients provide an IRangeComparator
that breaks their input data into a sequence of comparable entities. The
differencer returns the differences among these sequences as an array of
RangeDifference objects (findDifferences
methods). Every RangeDifference represents a single kind of
difference and the corresponding ranges of the underlying comparable entities
in the left, right, and optionally ancestor sides.
Alternatively, the findRanges methods not only return objects
for the differing ranges but for non-differing ranges too.
The algorithm used is an objectified version of one described in:
IRangeComparator,
RangeDifference| Modifier and Type | Method and Description |
|---|---|
static RangeDifference[] |
findDifferences(IRangeComparator left,
IRangeComparator right)
Finds the differences between two
IRangeComparators. |
static RangeDifference[] |
findDifferences(LCSSettings settings,
IRangeComparator left,
IRangeComparator right)
Finds the differences between two
IRangeComparators. |
static RangeDifference[] |
findDifferences(LCSSettings settings,
IRangeComparator ancestor,
IRangeComparator left,
IRangeComparator right)
Finds the differences among three
IRangeComparators. |
static RangeDifference[] |
findRanges(LCSSettings settings,
IRangeComparator left,
IRangeComparator right)
Finds the differences among two
IRangeComparators. |
static RangeDifference[] |
findRanges(LCSSettings settings,
IRangeComparator ancestor,
IRangeComparator left,
IRangeComparator right)
Finds the differences among three
IRangeComparators. |
public static RangeDifference[] findDifferences(IRangeComparator left, IRangeComparator right)
IRangeComparators. The
differences are returned as an array of RangeDifferences.
If no differences are detected an empty array is returned.left - the left range comparatorright - the right range comparatorpublic static RangeDifference[] findDifferences(LCSSettings settings, IRangeComparator left, IRangeComparator right)
IRangeComparators. The
differences are returned as an array of RangeDifferences.
If no differences are detected an empty array is returned.pm - if not null used to report progressleft - the left range comparatorright - the right range comparatorpublic static RangeDifference[] findDifferences(LCSSettings settings, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)
IRangeComparators. The
differences are returned as a list of RangeDifferences.
If no differences are detected an empty list is returned. If the ancestor
range comparator is null, a two-way comparison is
performed.pm - if not null used to report progressancestor - the ancestor range comparator or nullleft - the left range comparatorright - the right range comparatorpublic static RangeDifference[] findRanges(LCSSettings settings, IRangeComparator left, IRangeComparator right)
IRangeComparators. In
contrast to findDifferences, the result contains
RangeDifference elements for non-differing ranges too.left - the left range comparatorright - the right range comparatorpublic static RangeDifference[] findRanges(LCSSettings settings, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)
IRangeComparators. In
contrast to findDifferences, the result contains
RangeDifference elements for non-differing ranges too. If
the ancestor range comparator is null, a two-way
comparison is performed.pm - if not null used to report progressancestor - the ancestor range comparator or nullleft - the left range comparatorright - the right range comparatorCopyright © 2007-2022. All Rights Reserved.