Interface IRangeComparator
-
- All Known Subinterfaces:
ITokenComparator
- All Known Implementing Classes:
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, andrangesEqual
would compare a specified line given with one in anotherIRangeComparator
.Clients should implement this interface; there is no standard implementation.
-
-
Method Summary
All Methods Instance Methods Abstract Methods 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 otherIRangeComparator
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
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 otherIRangeComparator
and index.- Parameters:
thisIndex
- the index of the comparable entity within thisIRangeComparator
other
- the IRangeComparator to compare this withotherIndex
- the index of the comparable entity within the otherIRangeComparator
- 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 returntrue
orfalse
maxLength
- another number on which to base the decision whether to returntrue
orfalse
other
- the otherIRangeComparator
to compare with- Returns:
true
to avoid a too lengthy range comparison
-
-