public final class SimilarityComputer extends Object
Modifier and Type | Field and Description |
---|---|
static int |
MINIMUM_LENGTH
The minimum length both sides must have to not be ignored (short text contents might seem similar and
cause false negatives).
|
static double |
THRESHOLD
The maximum percentage of differing lines contained in the content for files to be considered a rename.
|
Modifier and Type | Method and Description |
---|---|
static double |
computeDifference(InputStream a,
InputStream b)
Computes the difference between two
InputStream instances. |
static boolean |
isSimilar(InputStream a,
InputStream b)
Decides whether two input streams are similar.
|
public static final int MINIMUM_LENGTH
public static final double THRESHOLD
public static boolean isSimilar(InputStream a, InputStream b) throws IOException
computeDifference(InputStream, InputStream)
and compares the value with THRESHOLD
.a
- the first input streamb
- the second input streamtrue
if the input streams are similarIOException
- if reading of one of the input streams failspublic static double computeDifference(InputStream a, InputStream b) throws IOException
InputStream
instances. The returned value is a ratio of
changed lines to total lines, where total lines is denoted by the maximum of the line counts of both
input streams. This method returns Double.MAX_VALUE
if one or both of the streams are
null
or if the content is too short to be compared (shorter than MINIMUM_LENGTH
).a
- the first input streamb
- the second input streamIOException
- if reading of one of the input streams fails
Copyright (c) 2006, 2015 Obeo and others. All rights reserved.