Package org.eclipse.compare.rangedifferencer

# Interface IRangeComparator

All Known Subinterfaces:
  `ITokenComparator`

All Known Implementing Classes:
  `DocLineComparator`, `TokenComparator`

public interface IRangeComparator
For breaking an object to compare into a sequence of comparable entities.

It is used by `RangeDifferencer` to find longest sequences of matching and non-matching ranges.

For example, to compare two text documents and find longest common sequences of matching and non-matching lines, the implementation must break the document into lines. `getRangeCount` would return the number of lines in the document, and `rangesEqual` would compare a specified line given with one in another `IRangeComparator`.

Clients should implement this interface; there is no standard implementation.

## Method Summary

Modifier and Type
Method
Description
`int`
`getRangeCount()`
Returns the number of comparable entities.
`boolean`
`rangesEqual(int thisIndex, IRangeComparator other, int otherIndex)`
Returns whether the comparable entity given by the first index matches an entity specified by the other `IRangeComparator` and index.
`boolean`
`skipRangeComparison(int length, int maxLength, IRangeComparator other)`
Returns whether a comparison should be skipped because it would be too costly (or lengthy).

## Method Details

### getRangeCount

int getRangeCount()
Returns the number of comparable entities.

Returns:
  the number of comparable entities

### rangesEqual

boolean rangesEqual(int thisIndex, IRangeComparator other, int otherIndex)
Returns whether the comparable entity given by the first index matches an entity specified by the other `IRangeComparator` and index.

Parameters:
  `thisIndex` - the index of the comparable entity within this `IRangeComparator`
  `other` - the IRangeComparator to compare this with
  `otherIndex` - the index of the comparable entity within the other `IRangeComparator`
Returns:
  `true` if the comparable entities are equal

### skipRangeComparison

boolean skipRangeComparison(int length, int maxLength, IRangeComparator other)
Returns whether a comparison should be skipped because it would be too costly (or lengthy).

Parameters:
  `length` - a number on which to base the decision whether to return `true` or `false`
  `maxLength` - another number on which to base the decision whether to return `true` or `false`
  `other` - the other `IRangeComparator` to compare with
Returns:
  `true` to avoid a too lengthy range comparison