Eclipse Platform
2.0

org.eclipse.compare.rangedifferencer
Interface IRangeComparator

All Known Subinterfaces:
ITokenComparator

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
 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 Detail

getRangeCount

public int getRangeCount()
Returns the number of comparable entities.

Returns:
the number of comparable entities

rangesEqual

public 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

public 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

Eclipse Platform
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.