public MergeConflictFileWriter(Writer delegate, FileObject fo, Difference[] conflicts, String leftName, String rightName) throws IOException { super(delegate); this.conflicts = conflicts; this.leftName = leftName; this.rightName = rightName; this.lineNumber = 1; this.currentConflict = 0; if (lineNumber == conflicts[currentConflict].getFirstStart()) { writeConflict(conflicts[currentConflict]); currentConflict++; } this.fo = fo; }
private void writeConflict(Difference conflict) throws IOException { super.write(CHANGE_LEFT + leftName + "\n"); // NOI18N super.write(conflict.getFirstText()); super.write(CHANGE_DELIMETER + "\n"); // NOI18N super.write(conflict.getSecondText()); super.write(CHANGE_RIGHT + rightName + "\n"); // NOI18N }
if (d.getType() == Difference.ADD) { offset = d.getSecondEnd() - d.getSecondStart() + 1; editorStart = d.getFirstStart(); } else if (d.getType() == Difference.DELETE) { offset = d.getFirstEnd() - d.getFirstStart() + 1; editorStart = d.getFirstEnd(); for (int c = editorStart - offset; c < editorStart; c++) { ann2editorPermutation[c] = -1; } else { int firstLen = d.getFirstEnd() - d.getFirstStart(); int secondLen = d.getSecondEnd() - d.getSecondStart(); offset = secondLen - firstLen; if (offset == 0) continue; editorStart = d.getFirstEnd(); for (int c = d.getFirstStart(); c < editorStart; c++) { ann2editorPermutation[c] += -1;
diffList.add((f1l1 > f1l2) ? new Difference(Difference.ADD, f1l1 - 1, 0, f2l1, f2l2, text1.toString(), text2.toString()) : (f2l1 > f2l2) ? new Difference(Difference.DELETE, f1l1, f1l2, f2l1 - 1, 0, text1.toString(), text2.toString()) : new Difference(Difference.CHANGE, f1l1, f1l2, f2l1, f2l2, text1.toString(), diffList.add((f1l1 > f1l2) ? new Difference(Difference.ADD, f1l1 - 1, 0, f2l1, f2l2, text1.toString(), text2.toString()) : (f2l1 > f2l2) ? new Difference(Difference.DELETE, f1l1, f1l2, f2l1 - 1, 0, text1.toString(), text2.toString()) : new Difference(Difference.CHANGE, f1l1, f1l2, f2l1, f2l2, text1.toString(), diffList.add((f1l1 > f1l2) ? new Difference(Difference.ADD, f1l1 - 1, 0, f2l1, f2l2, text1.toString(), text2.toString()) : (f2l1 > f2l2) ? new Difference(Difference.DELETE,
public void write(String str) throws IOException { super.write(str); lineNumber += numChars('\n', str); if (currentConflict < conflicts.length && lineNumber >= conflicts[currentConflict].getFirstStart()) { writeConflict(conflicts[currentConflict]); currentConflict++; } }