Class MyersDiff<T>
- java.lang.Object
-
- com.github.difflib.algorithm.myers.MyersDiff<T>
-
- All Implemented Interfaces:
DiffAlgorithmI<T>
public final class MyersDiff<T> extends java.lang.Object implements DiffAlgorithmI<T>
A clean-room implementation of Eugene Myers greedy differencing algorithm.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private PathNode
buildPath(java.util.List<T> orig, java.util.List<T> rev, DiffAlgorithmListener progress)
Computes the minimum diffpath that expresses de differences between the original and revised sequences, according to Gene Myers differencing algorithm.private java.util.List<Change>
buildRevision(PathNode actualPath, java.util.List<T> orig, java.util.List<T> rev)
Constructs aPatch
from a difference path.java.util.List<Change>
computeDiff(java.util.List<T> source, java.util.List<T> target, DiffAlgorithmListener progress)
Computes the changeset to patch the source list to the target list.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.github.difflib.algorithm.DiffAlgorithmI
computeDiff
-
-
-
-
Method Detail
-
computeDiff
public java.util.List<Change> computeDiff(java.util.List<T> source, java.util.List<T> target, DiffAlgorithmListener progress)
Computes the changeset to patch the source list to the target list. Return empty diff if get the error while procession the difference.- Specified by:
computeDiff
in interfaceDiffAlgorithmI<T>
- Parameters:
source
- source datatarget
- target dataprogress
- progress listener- Returns:
-
buildPath
private PathNode buildPath(java.util.List<T> orig, java.util.List<T> rev, DiffAlgorithmListener progress)
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
accross the differences graph. - Throws:
DifferentiationFailedException
- if a diff path could not be found.
-
-