Class FSMergerBySequence


  • public class FSMergerBySequence
    extends java.lang.Object
    Version:
    1.3
    • Constructor Summary

      Constructors 
      Constructor Description
      FSMergerBySequence​(byte[] conflictStart, byte[] conflictSeparator, byte[] conflictEnd)  
      FSMergerBySequence​(byte[] conflictStart, byte[] conflictSeparator, byte[] conflictEnd, byte[] originalMarker)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private int appendLines​(java.io.OutputStream result, de.regnis.q.sequence.QSequenceDifferenceBlock block, de.regnis.q.sequence.line.QSequenceLineCache changedLines, int baseLineIndex, java.util.List transformedLocalLines)  
      private void appendTransformedLocalLines​(int baseLineIndex, int to, java.util.List transformedLocalLines, java.io.OutputStream result)  
      private boolean checkConflict​(FSMergerBySequenceList localChanges, FSMergerBySequenceList latestChanges, de.regnis.q.sequence.line.QSequenceLineCache localLines, de.regnis.q.sequence.line.QSequenceLineCache latestLines, int baseLineCount)  
      private int createConflict​(java.io.OutputStream result, de.regnis.q.sequence.QSequenceDifferenceBlock localStart, de.regnis.q.sequence.QSequenceDifferenceBlock localEnd, de.regnis.q.sequence.QSequenceDifferenceBlock latestStart, de.regnis.q.sequence.QSequenceDifferenceBlock latestEnd, de.regnis.q.sequence.line.QSequenceLineCache localLines, de.regnis.q.sequence.line.QSequenceLineCache latestLines, int baseLineIndex, java.util.List transformedLocalLines, SVNDiffConflictChoiceStyle style)  
      private int createOnlyConflictWithContext​(java.io.OutputStream result, de.regnis.q.sequence.QSequenceDifferenceBlock localStart, de.regnis.q.sequence.QSequenceDifferenceBlock localEnd, de.regnis.q.sequence.QSequenceDifferenceBlock latestStart, de.regnis.q.sequence.QSequenceDifferenceBlock latestEnd, de.regnis.q.sequence.line.QSequenceLineCache localLines, de.regnis.q.sequence.line.QSequenceLineCache latestLines, de.regnis.q.sequence.line.QSequenceLineCache baseLines)  
      private de.regnis.q.sequence.line.simplifier.QSequenceLineTeeSimplifier createSimplifier​(SVNDiffOptions options)  
      private boolean intersect​(de.regnis.q.sequence.QSequenceDifferenceBlock block1, de.regnis.q.sequence.QSequenceDifferenceBlock block2, int baseLineCount)  
      private boolean isBefore​(de.regnis.q.sequence.QSequenceDifferenceBlock block1, de.regnis.q.sequence.QSequenceDifferenceBlock block2)  
      private boolean isEqualChange​(de.regnis.q.sequence.QSequenceDifferenceBlock localBlock, de.regnis.q.sequence.QSequenceDifferenceBlock latestBlock, de.regnis.q.sequence.line.QSequenceLineCache localLines, de.regnis.q.sequence.line.QSequenceLineCache latestLines)  
      int merge​(de.regnis.q.sequence.line.QSequenceLineRAData baseData, de.regnis.q.sequence.line.QSequenceLineRAData localData, de.regnis.q.sequence.line.QSequenceLineRAData latestData, SVNDiffOptions options, java.io.OutputStream result, SVNDiffConflictChoiceStyle style)  
      private java.util.List transformLocalLines​(java.util.List blocks, de.regnis.q.sequence.line.QSequenceLineCache localLines)  
      private void writeBytes​(java.io.OutputStream os, byte[] bytes)  
      private void writeBytesAndEol​(java.io.OutputStream os, byte[] bytes)  
      private void writeLine​(java.io.OutputStream os, de.regnis.q.sequence.line.QSequenceLine line)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEFAULT_EOL

        public static final java.lang.String DEFAULT_EOL
      • myConflictStart

        private final byte[] myConflictStart
      • myConflictSeparator

        private final byte[] myConflictSeparator
      • myConflictEnd

        private final byte[] myConflictEnd
      • myOriginalMarker

        private final byte[] myOriginalMarker
    • Constructor Detail

      • FSMergerBySequence

        public FSMergerBySequence​(byte[] conflictStart,
                                  byte[] conflictSeparator,
                                  byte[] conflictEnd)
      • FSMergerBySequence

        public FSMergerBySequence​(byte[] conflictStart,
                                  byte[] conflictSeparator,
                                  byte[] conflictEnd,
                                  byte[] originalMarker)
    • Method Detail

      • merge

        public int merge​(de.regnis.q.sequence.line.QSequenceLineRAData baseData,
                         de.regnis.q.sequence.line.QSequenceLineRAData localData,
                         de.regnis.q.sequence.line.QSequenceLineRAData latestData,
                         SVNDiffOptions options,
                         java.io.OutputStream result,
                         SVNDiffConflictChoiceStyle style)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • transformLocalLines

        private java.util.List transformLocalLines​(java.util.List blocks,
                                                   de.regnis.q.sequence.line.QSequenceLineCache localLines)
                                            throws java.io.IOException
        Throws:
        java.io.IOException
      • isBefore

        private boolean isBefore​(de.regnis.q.sequence.QSequenceDifferenceBlock block1,
                                 de.regnis.q.sequence.QSequenceDifferenceBlock block2)
      • intersect

        private boolean intersect​(de.regnis.q.sequence.QSequenceDifferenceBlock block1,
                                  de.regnis.q.sequence.QSequenceDifferenceBlock block2,
                                  int baseLineCount)
      • appendLines

        private int appendLines​(java.io.OutputStream result,
                                de.regnis.q.sequence.QSequenceDifferenceBlock block,
                                de.regnis.q.sequence.line.QSequenceLineCache changedLines,
                                int baseLineIndex,
                                java.util.List transformedLocalLines)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • isEqualChange

        private boolean isEqualChange​(de.regnis.q.sequence.QSequenceDifferenceBlock localBlock,
                                      de.regnis.q.sequence.QSequenceDifferenceBlock latestBlock,
                                      de.regnis.q.sequence.line.QSequenceLineCache localLines,
                                      de.regnis.q.sequence.line.QSequenceLineCache latestLines)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • checkConflict

        private boolean checkConflict​(FSMergerBySequenceList localChanges,
                                      FSMergerBySequenceList latestChanges,
                                      de.regnis.q.sequence.line.QSequenceLineCache localLines,
                                      de.regnis.q.sequence.line.QSequenceLineCache latestLines,
                                      int baseLineCount)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • createConflict

        private int createConflict​(java.io.OutputStream result,
                                   de.regnis.q.sequence.QSequenceDifferenceBlock localStart,
                                   de.regnis.q.sequence.QSequenceDifferenceBlock localEnd,
                                   de.regnis.q.sequence.QSequenceDifferenceBlock latestStart,
                                   de.regnis.q.sequence.QSequenceDifferenceBlock latestEnd,
                                   de.regnis.q.sequence.line.QSequenceLineCache localLines,
                                   de.regnis.q.sequence.line.QSequenceLineCache latestLines,
                                   int baseLineIndex,
                                   java.util.List transformedLocalLines,
                                   SVNDiffConflictChoiceStyle style)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • createOnlyConflictWithContext

        private int createOnlyConflictWithContext​(java.io.OutputStream result,
                                                  de.regnis.q.sequence.QSequenceDifferenceBlock localStart,
                                                  de.regnis.q.sequence.QSequenceDifferenceBlock localEnd,
                                                  de.regnis.q.sequence.QSequenceDifferenceBlock latestStart,
                                                  de.regnis.q.sequence.QSequenceDifferenceBlock latestEnd,
                                                  de.regnis.q.sequence.line.QSequenceLineCache localLines,
                                                  de.regnis.q.sequence.line.QSequenceLineCache latestLines,
                                                  de.regnis.q.sequence.line.QSequenceLineCache baseLines)
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • appendTransformedLocalLines

        private void appendTransformedLocalLines​(int baseLineIndex,
                                                 int to,
                                                 java.util.List transformedLocalLines,
                                                 java.io.OutputStream result)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • writeLine

        private void writeLine​(java.io.OutputStream os,
                               de.regnis.q.sequence.line.QSequenceLine line)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • writeBytesAndEol

        private void writeBytesAndEol​(java.io.OutputStream os,
                                      byte[] bytes)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeBytes

        private void writeBytes​(java.io.OutputStream os,
                                byte[] bytes)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createSimplifier

        private de.regnis.q.sequence.line.simplifier.QSequenceLineTeeSimplifier createSimplifier​(SVNDiffOptions options)