Class MeyersDiff<T>
- java.lang.Object
-
- com.github.difflib.algorithm.myers.MeyersDiff<T>
-
- All Implemented Interfaces:
DiffAlgorithmI<T>
public final class MeyersDiff<T> extends java.lang.Object implements DiffAlgorithmI<T>
A clean-room implementation of Eugene Meyers greedy differencing algorithm.
-
-
Constructor Summary
Constructors Constructor Description MeyersDiff()
MeyersDiff(java.util.function.BiPredicate<T,T> equalizer)
-
Method Summary
All Methods Static 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.static DiffAlgorithmFactory
factory()
Factory to create instances of this specific diff algorithm.-
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.
-
buildRevision
private java.util.List<Change> buildRevision(PathNode actualPath, java.util.List<T> orig, java.util.List<T> rev)
Constructs aPatch
from a difference path.
-
factory
public static DiffAlgorithmFactory factory()
Factory to create instances of this specific diff algorithm.
-
-