Package org.assertj.core.util.diff.myers
Class MyersDiff<T>
java.lang.Object
org.assertj.core.util.diff.myers.MyersDiff<T>
- Type Parameters:
T
- The type of the compared elements in the 'lines'.
- All Implemented Interfaces:
DiffAlgorithm<T>
Copy from https://code.google.com/p/java-diff-utils/.
A clean-room implementation of Eugene Myers differencing algorithm.
See the paper at http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps
- Author:
- Juanco Anez
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionComputes the minimum diffpath that expresses de differences between the original and revised sequences, according to Gene Myers differencing algorithm.Constructs aPatch
from a difference path.Computes the difference between the original sequence and the revised sequence and returns it as aPatch
object.
-
Constructor Details
-
MyersDiff
public MyersDiff()Constructs an instance of the Myers differencing algorithm.
-
-
Method Details
-
diff
Computes the difference between the original sequence and the revised sequence and returns it as aPatch
object. Return empty diff if get the error while procession the difference.- Specified by:
diff
in interfaceDiffAlgorithm<T>
- Parameters:
original
- The original sequence. Must not benull
.revised
- The revised sequence. Must not benull
.- Returns:
- The patch representing the diff of the given sequences. Never
null
.
-
buildPath
Computes the minimum diffpath that expresses de differences between the original and revised sequences, according to Gene Myers differencing algorithm.- Parameters:
orig
- The original sequence.rev
- The revised sequence.- Returns:
- A minimum
Path
across the differences graph. - Throws:
IllegalStateException
- if a diff path could not be found.
-
buildRevision
Constructs aPatch
from a difference path.- Parameters:
path
- The path.orig
- The original sequence.rev
- The revised sequence.- Returns:
- A
Patch
script corresponding to the path.
-