Class RangeDifferencer

java.lang.Object
org.eclipse.compare.rangedifferencer.RangeDifferencer

public final class RangeDifferencer extends Object
A 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.

See Also:
  • Method Details

    • findDifferences

      public static RangeDifference[] findDifferences(IRangeComparator left, IRangeComparator right)
      Finds the differences between two IRangeComparators. The differences are returned as an array of RangeDifferences. If no differences are detected an empty array is returned.
      Parameters:
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences, or an empty array if no differences were found
    • findDifferences

      public static RangeDifference[] findDifferences(IProgressMonitor pm, IRangeComparator left, IRangeComparator right)
      Finds the differences between two IRangeComparators. The differences are returned as an array of RangeDifferences. If no differences are detected an empty array is returned.
      Parameters:
      pm - if not null used to report progress
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences, or an empty array if no differences were found
      Since:
      2.0
    • findDifferences

      public static RangeDifference[] findDifferences(AbstractRangeDifferenceFactory factory, IProgressMonitor pm, IRangeComparator left, IRangeComparator right)
      Finds the differences between two IRangeComparators. The differences are returned as an array of RangeDifferences. If no differences are detected an empty array is returned.
      Parameters:
      factory - factory to instantiate new RangeDifferences
      pm - if not null used to report progress
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences, or an empty array if no differences were found
      Since:
      org.eclipse.compare.core 3.5
    • findDifferences

      public static RangeDifference[] findDifferences(IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)
      Finds the differences among three 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.
      Parameters:
      ancestor - the ancestor range comparator or null
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences, or an empty array if no differences were found
    • findDifferences

      public static RangeDifference[] findDifferences(IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)
      Finds the differences among three 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.
      Parameters:
      pm - if not null used to report progress
      ancestor - the ancestor range comparator or null
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences, or an empty array if no differences were found
      Since:
      2.0
    • findDifferences

      public static RangeDifference[] findDifferences(AbstractRangeDifferenceFactory factory, IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)
      Finds the differences among three 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.
      Parameters:
      factory - factory to instantiate new RangeDifferences
      pm - if not null used to report progress
      ancestor - the ancestor range comparator or null
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences, or an empty array if no differences were found
      Since:
      org.eclipse.compare.core 3.5
    • findRanges

      public static RangeDifference[] findRanges(IRangeComparator left, IRangeComparator right)
      Finds the differences among two IRangeComparators. In contrast to findDifferences, the result contains RangeDifference elements for non-differing ranges too.
      Parameters:
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences
    • findRanges

      public static RangeDifference[] findRanges(IProgressMonitor pm, IRangeComparator left, IRangeComparator right)
      Finds the differences among two IRangeComparators. In contrast to findDifferences, the result contains RangeDifference elements for non-differing ranges too.
      Parameters:
      pm - if not null used to report progress
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences
      Since:
      2.0
    • findRanges

      public static RangeDifference[] findRanges(AbstractRangeDifferenceFactory factory, IProgressMonitor pm, IRangeComparator left, IRangeComparator right)
      Finds the differences among two IRangeComparators. In contrast to findDifferences, the result contains RangeDifference elements for non-differing ranges too.
      Parameters:
      factory - factory to instantiate new RangeDifferences
      pm - if not null used to report progress
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences
      Since:
      org.eclipse.compare.core 3.5
    • findRanges

      public static RangeDifference[] findRanges(IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)
      Finds the differences among three 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.
      Parameters:
      ancestor - the ancestor range comparator or null
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences
    • findRanges

      public static RangeDifference[] findRanges(IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)
      Finds the differences among three 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.
      Parameters:
      pm - if not null used to report progress
      ancestor - the ancestor range comparator or null
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences
      Since:
      2.0
    • findRanges

      public static RangeDifference[] findRanges(AbstractRangeDifferenceFactory factory, IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)
      Finds the differences among three 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.
      Parameters:
      factory - factory to instantiate new RangeDifferences
      pm - if not null used to report progress
      ancestor - the ancestor range comparator or null
      left - the left range comparator
      right - the right range comparator
      Returns:
      an array of range differences
      Since:
      org.eclipse.compare.core 3.5