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;
}
}
}