Class Patch<T>

java.lang.Object
com.github.difflib.patch.Patch<T>
Type Parameters:
T - The type of the compared elements in the 'lines'.
All Implemented Interfaces:
Serializable

public final class Patch<T> extends Object implements Serializable
Describes the patch holding all deltas between the original and revised texts.
See Also:
  • Field Details

    • deltas

      private final List<AbstractDelta<T>> deltas
    • CONFLICT_PRODUCES_EXCEPTION

      public final ConflictOutput<T> CONFLICT_PRODUCES_EXCEPTION
      Standard Patch behaviour to throw an exception for pathching conflicts.
    • CONFLICT_PRODUCES_MERGE_CONFLICT

      public static final ConflictOutput<String> CONFLICT_PRODUCES_MERGE_CONFLICT
      Git like merge conflict output.
    • conflictOutput

      private ConflictOutput<T> conflictOutput
  • Constructor Details

    • Patch

      public Patch()
    • Patch

      public Patch(int estimatedPatchSize)
  • Method Details

    • applyTo

      public List<T> applyTo(List<T> target) throws PatchFailedException
      Apply this patch to the given target
      Returns:
      the patched text
      Throws:
      PatchFailedException - if can't apply patch
    • withConflictOutput

      public Patch withConflictOutput(ConflictOutput<T> conflictOutput)
      Alter normal conflict output behaviour to e.g. inclide some conflict statements in the result, like git does it.
    • restore

      public List<T> restore(List<T> target)
      Restore the text to original. Opposite to applyTo() method.
      Parameters:
      target - the given target
      Returns:
      the restored text
    • addDelta

      public void addDelta(AbstractDelta<T> delta)
      Add the given delta to this patch
      Parameters:
      delta - the given delta
    • getDeltas

      public List<AbstractDelta<T>> getDeltas()
      Get the list of computed deltas
      Returns:
      the deltas
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • generate

      public static <T> Patch<T> generate(List<T> original, List<T> revised, List<Change> changes)
    • buildChunk

      private static <T> Chunk<T> buildChunk(int start, int end, List<T> data)
    • generate

      public static <T> Patch<T> generate(List<T> original, List<T> revised, List<Change> _changes, boolean includeEquals)