Example usage for org.eclipse.jgit.merge MergeChunk getSequenceIndex

List of usage examples for org.eclipse.jgit.merge MergeChunk getSequenceIndex

Introduction

In this page you can find the example usage for org.eclipse.jgit.merge MergeChunk getSequenceIndex.

Prototype

public int getSequenceIndex() 

Source Link

Document

Get the index of the sequence to which this sequence chunks belongs to.

Usage

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