Class MyersDiff<T>

    • Field Detail

      • equalizer

        private final Equalizer<T> equalizer
        The equalizer.
    • Constructor Detail

      • MyersDiff

        public MyersDiff()
        Constructs an instance of the Myers differencing algorithm.
    • Method Detail

      • diff

        public Patch<T> diff​(List<T> original,
                             List<T> revised)
        Computes the difference between the original sequence and the revised sequence and returns it as a Patch object. Return empty diff if get the error while procession the difference.
        Specified by:
        diff in interface DiffAlgorithm<T>
        Parameters:
        original - The original sequence. Must not be null.
        revised - The revised sequence. Must not be null.
        Returns:
        The patch representing the diff of the given sequences. Never null.
      • buildPath

        public PathNode buildPath​(List<T> orig,
                                  List<T> rev)
        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 across the differences graph.
        Throws:
        IllegalStateException - if a diff path could not be found.
      • equals

        private boolean equals​(T orig,
                               T rev)
      • buildRevision

        public Patch<T> buildRevision​(PathNode path,
                                      List<T> orig,
                                      List<T> rev)
        Constructs a Patch from a difference path.
        Parameters:
        path - The path.
        orig - The original sequence.
        rev - The revised sequence.
        Returns:
        A Patch script corresponding to the path.
      • copyOfRange

        private List<T> copyOfRange​(List<T> original,
                                    int fromIndex,
                                    int to)
        Creates a new list containing the elements returned by List.subList(int, int).
        Parameters:
        original - The original sequence. Must not be null.
        fromIndex - low endpoint (inclusive) of the subList.
        to - high endpoint (exclusive) of the subList.
        Returns:
        A new list of the specified range within the original list.