Class DiffUtils

java.lang.Object
org.assertj.core.util.diff.DiffUtils

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

Implements the difference and patching engine

  • Field Details

    • unifiedDiffChunkRe

      private static Pattern unifiedDiffChunkRe
  • Constructor Details

    • DiffUtils

      public DiffUtils()
  • Method Details

    • 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
      Type Parameters:
      T - the type of elements.
      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
      Type Parameters:
      T - the type of elements.
      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
      Type Parameters:
      T - the type of elements.
      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.
    • processDeltas

      private static List<String> processDeltas(List<String> origLines, List<Delta<String>> deltas, int contextSize)
      processDeltas takes a list of Deltas and outputs them together in a single block of Unified-Diff-format text.
      Parameters:
      origLines - the lines of the original file
      deltas - the Deltas to be output as a single block
      contextSize - the number of lines of context to place around block
      Returns:
      the Unified-Diff-format text
    • getDeltaText

      private static List<String> getDeltaText(Delta<String> delta)
      getDeltaText returns the lines to be added to the Unified Diff text from the Delta parameter
      Parameters:
      delta - the Delta to output
      Returns:
      list of String lines of code.