Class DiffUtils


  • public class DiffUtils
    extends Object
    Copy from https://code.google.com/p/java-diff-utils/.

    Implements the difference and patching engine

    Author:
    Dmitry Naumenko, Bill James (tankerbay@gmail.com)
    • Constructor Detail

      • DiffUtils

        public DiffUtils()
    • Method Detail

      • diff

        public static <T> Patch<T> diff​(List<T> original,
                                        List<T> revised)
        Computes the difference between the original and revised list of elements with default diff algorithm
        Parameters:
        original - The original text. Must not be null.
        revised - The revised text. Must not be null.
        Returns:
        The patch describing the difference between the original and revised sequences. Never null.
      • diff

        public static <T> Patch<T> diff​(List<T> original,
                                        List<T> revised,
                                        DiffAlgorithm<T> algorithm)
        Computes the difference between the original and revised list of elements with default diff algorithm
        Parameters:
        original - The original text. Must not be null.
        revised - The revised text. Must not be null.
        algorithm - The diff algorithm. Must not be null.
        Returns:
        The patch describing the difference between the original and revised sequences. Never null.
      • patch

        public static <T> List<T> patch​(List<T> original,
                                        Patch<T> patch)
                                 throws IllegalStateException
        Patch the original text with given patch
        Parameters:
        original - the original text
        patch - the given patch
        Returns:
        the revised text
        Throws:
        IllegalStateException - if can't apply patch
      • parseUnifiedDiff

        public static Patch<String> parseUnifiedDiff​(List<String> diff)
        Parse the given text in unified format and creates the list of deltas for it.
        Parameters:
        diff - the text in unified format
        Returns:
        the patch with deltas.
      • generateUnifiedDiff

        public static List<String> generateUnifiedDiff​(String original,
                                                       String revised,
                                                       List<String> originalLines,
                                                       Patch<String> patch,
                                                       int contextSize)
        generateUnifiedDiff takes a Patch and some other arguments, returning the Unified Diff format text representing the Patch.
        Parameters:
        original - Filename of the original (unrevised file)
        revised - Filename of the revised file
        originalLines - Lines of the original file
        patch - Patch created by the diff() function
        contextSize - number of lines of context output around each difference in the file.
        Returns:
        List of strings representing the Unified Diff representation of the Patch argument.