<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="IBM">
   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
   <title>Package-level Javadoc</title>
</head>
<body>
Provides support for finding the differences between
two or three sequences of comparable entities.
<h2>
Package Specification</h2>

The class <b>RangeDifferencer</b> finds longest sequences of matching and
non-matching comparable entities. Its implementation is based on
an objectified version of the algorithm described in:
<i>A File Comparison Program,</i> by Webb Miller and Eugene W. Myers,
Software Practice and Experience, Vol. 15, Nov. 1985.
<p>

Clients must supply the input to the differencer as an implementation
of the <b>IRangeComparator</b> interface.
An <b>IRangeComparator</b> breaks the input data into a sequence
of entities and provides a method for comparing
one entity with the entity in another <b>IRangeComparator</b>.
<p>

For example, to compare two text documents and find longest common
sequences of matching and non-matching lines,
the implementation of <b>IRangeComparator</b> 
must break the document into lines and provide a method for testing
whether two lines are considered equal.
See <b>org.eclipse.compare.internal.DocLineComparator</b> for how this can be done.
<p>

The differencer returns the differences among these sequences as an
array of <b>RangeDifference</b> objects.
Every single <b>RangeDifference</b> describes the kind of difference
(no change, change, addition, deletion) and the corresponding ranges
of the underlying comparable entities in the two or three inputs.

</body>
</html>
