Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.compare.rangedifferencer
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 `IRangeComparator`s.

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: A File Comparison Program, by Webb Miller and Eugene W. Myers, Software Practice and Experience, Vol. 15, Nov. 1985.

See Also:
  `IRangeComparator`, `RangeDifference`

Method Summary
`static RangeDifference[]` | `findDifferences(IProgressMonitor pm, IRangeComparator left, IRangeComparator right)` Finds the differences between two `IRangeComparator`s.
`static RangeDifference[]` | `findDifferences(IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)` Finds the differences among three `IRangeComparator`s.
`static RangeDifference[]` | `findDifferences(IRangeComparator left, IRangeComparator right)` Finds the differences between two `IRangeComparator`s.
`static RangeDifference[]` | `findDifferences(IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)` Finds the differences among three `IRangeComparator`s.
`static RangeDifference[]` | `findRanges(IProgressMonitor pm, IRangeComparator left, IRangeComparator right)` Finds the differences among two `IRangeComparator`s.
`static RangeDifference[]` | `findRanges(IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)` Finds the differences among three `IRangeComparator`s.
`static RangeDifference[]` | `findRanges(IRangeComparator left, IRangeComparator right)` Finds the differences among two `IRangeComparator`s.
`static RangeDifference[]` | `findRanges(IRangeComparator ancestor, IRangeComparator left, IRangeComparator right)` Finds the differences among three `IRangeComparator`s.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### findDifferences

    public static RangeDifference[] findDifferences(IRangeComparator left,
                                                    IRangeComparator right)

  Finds the differences between two `IRangeComparator`s. The differences are returned as an array of `RangeDifference`s. 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 `IRangeComparator`s. The differences are returned as an array of `RangeDifference`s. 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(IRangeComparator ancestor,
                                                    IRangeComparator left,
                                                    IRangeComparator right)

  Finds the differences among three `IRangeComparator`s. The differences are returned as a list of `RangeDifference`s. 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 `IRangeComparator`s. The differences are returned as a list of `RangeDifference`s. 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

### findRanges

    public static RangeDifference[] findRanges(IRangeComparator left,
                                               IRangeComparator right)

  Finds the differences among two `IRangeComparator`s. 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 `IRangeComparator`s. 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(IRangeComparator ancestor,
                                               IRangeComparator left,
                                               IRangeComparator right)

  Finds the differences among three `IRangeComparator`s. 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 `IRangeComparator`s. 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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.