Class Patch<T>

  • Type Parameters:
    T - The type of the compared elements in the 'lines'.
    All Implemented Interfaces:
    java.io.Serializable

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

      • 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<java.lang.String> CONFLICT_PRODUCES_MERGE_CONFLICT
        Git like merge conflict output.
    • Constructor Detail

      • Patch

        public Patch()
      • Patch

        public Patch​(int estimatedPatchSize)
    • Method Detail

      • applyTo

        public java.util.List<T> applyTo​(java.util.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 java.util.List<T> restore​(java.util.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 java.util.List<AbstractDelta<T>> getDeltas()
        Get the list of computed deltas
        Returns:
        the deltas
      • toString

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

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

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

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