List of usage examples for org.eclipse.jgit.merge MergeChunk getSequenceIndex
public int getSequenceIndex()
From source file:com.google.collide.server.shared.merge.JGitMerger.java
License:Open Source License
public static MergeResult formatMerge(org.eclipse.jgit.merge.MergeResult<RawText> results) { int runningIndex = 0; int numLines = 0; List<MergeChunk> mergeChunks = Lists.newArrayList(); MergeChunk currentMergeChunk = null; StringBuilder fileContent = new StringBuilder(); int conflictIndex = 0; for (org.eclipse.jgit.merge.MergeChunk chunk : results) { RawText seq = results.getSequences().get(chunk.getSequenceIndex()); String chunkContent = seq.getString(chunk.getBegin(), chunk.getEnd(), false); if (chunk.getConflictState() == ConflictState.NO_CONFLICT || chunk.getConflictState() == ConflictState.FIRST_CONFLICTING_RANGE) { if (currentMergeChunk != null) { mergeChunks.add(currentMergeChunk); }/*from w w w. jav a2s . c om*/ currentMergeChunk = new MergeChunk(); } switch (chunk.getConflictState()) { case NO_CONFLICT: currentMergeChunk.setHasConflict(false); currentMergeChunk.setMergedData(chunkContent); fileContent.append(chunkContent); numLines = chunk.getEnd() - chunk.getBegin(); runningIndex = setRanges(currentMergeChunk, runningIndex, numLines); break; case FIRST_CONFLICTING_RANGE: currentMergeChunk.setHasConflict(true); currentMergeChunk.setChildData(chunkContent); fileContent.append(chunkContent); numLines = chunk.getEnd() - chunk.getBegin(); runningIndex = setRanges(currentMergeChunk, runningIndex, numLines); break; case NEXT_CONFLICTING_RANGE: currentMergeChunk.setParentData(chunkContent); break; } } mergeChunks.add(currentMergeChunk); MergeResult mergeResult = new MergeResult(mergeChunks, (conflictIndex > 0) ? "" : fileContent.toString()); return mergeResult; }
From source file:org.openflexo.hannah.ConflictingFile.java
License:Open Source License
/** * <p>Constructs string from a {@link MergeChunk}.</p> * @param chunk chunk to construct.// w ww .jav a 2 s. com * @param text the referenced {@link RawText}. * @return a String. */ private String getChunkString(MergeChunk chunk) { final RawText text = result.getSequences().get(chunk.getSequenceIndex()); final StringBuilder string = new StringBuilder(); for (int i = chunk.getBegin(); i < chunk.getEnd(); i++) { string.append(text.getString(i)); string.append("\n"); } return string.toString(); }