package jetbrains.mps.vcs.core.mergedriver; /*Generated by MPS */ import org.jetbrains.annotations.Nullable; import jetbrains.mps.baseLanguage.tuples.runtime.Tuples; /*package*/ class CompositeMerger extends AbstractContentMerger { private AbstractContentMerger myPrimaryMerger; private AbstractContentMerger mySecondaryMerger; /*package*/ CompositeMerger(AbstractContentMerger primaryMerger, AbstractContentMerger secondaryMerger) { myPrimaryMerger = primaryMerger; mySecondaryMerger = secondaryMerger; } @Override public void setConflictMarks(byte[] conflictStart, byte[] conflictEnd, byte[] separator) { myPrimaryMerger.setConflictMarks(conflictStart, conflictEnd, separator); mySecondaryMerger.setConflictMarks(conflictStart, conflictEnd, separator); } @Nullable @Override public Tuples._2<Integer, byte[]> mergeContents(FileContent baseContent, FileContent localContent, FileContent latestContent) { Tuples._2<Integer, byte[]> primaryResult = myPrimaryMerger.mergeContents(baseContent, localContent, latestContent); if (primaryResult == null || (int) primaryResult._0() != MERGED) { return mySecondaryMerger.mergeContents(baseContent, localContent, latestContent); } else { return primaryResult; } } }