Class MergeAlgorithm


  • public final class MergeAlgorithm
    extends java.lang.Object
    Provides the merge algorithm which does a three-way merge on content provided as RawText. By default HistogramDiff is used as diff algorithm.
    • Field Detail

      • END_EDIT

        private static final Edit END_EDIT
    • Constructor Detail

      • MergeAlgorithm

        public MergeAlgorithm()
        Creates a new MergeAlgorithm which uses HistogramDiff as diff algorithm
      • MergeAlgorithm

        public MergeAlgorithm​(DiffAlgorithm diff)
        Creates a new MergeAlgorithm
        Parameters:
        diff - the diff algorithm used by this merge
    • Method Detail

      • isEndEdit

        private static boolean isEndEdit​(Edit edit)
      • merge

        public <S extends SequenceMergeResult<S> merge​(SequenceComparator<S> cmp,
                                                         S base,
                                                         S ours,
                                                         S theirs)
        Does the three way merge between a common base and two sequences.
        Parameters:
        cmp - comparison method for this execution.
        base - the common base sequence
        ours - the first sequence to be merged
        theirs - the second sequence to be merged
        Returns:
        the resulting content
      • nextEdit

        private static Edit nextEdit​(java.util.Iterator<Edit> it)
        Helper method which returns the next Edit for an Iterator over Edits. When there are no more edits left this method will return the constant END_EDIT.
        Parameters:
        it - the iterator for which the next edit should be returned
        Returns:
        the next edit from the iterator or END_EDIT if there no more edits