/** * Generate source different count elements * * @param sourceDiffFile The source differences * @param root Root element where the generated element will be placed */ private void generateSourceDifferenceCount(DiffFile sourceDiffFile, Element root) { int removedLinesCount = 0, addedLinesCount = 0; for (Delta sourceDiff : sourceDiffFile.getChanges()) { if (sourceDiff.getType() == TYPE.CHANGE) { removedLinesCount += sourceDiff.getOriginal().size(); addedLinesCount += sourceDiff.getRevised().size(); } else if (sourceDiff.getType() == TYPE.DELETE) { removedLinesCount += sourceDiff.getOriginal().size(); } else if (sourceDiff.getType() == TYPE.INSERT) { addedLinesCount += sourceDiff.getRevised().size(); } } int totalLinesChangedCount = sourceDiffFile.getRevisedLineCount() - sourceDiffFile.getOriginalLineCount(); double totalPercentage = 100.0; if (sourceDiffFile.getOriginalLineCount() > 0) { totalPercentage = Math.round( (double) totalLinesChangedCount / (double) sourceDiffFile.getOriginalLineCount() * (double) 10000) / (double) 100; } root.setAttribute("sizeChange", totalLinesChangedCount + " (" + totalPercentage + "%)"); if (removedLinesCount > 0) { Element removedLines = doc.createElement("removedLineCount"); double percentage = Math.round( (double) removedLinesCount / (double) sourceDiffFile.getOriginalLineCount() * (double) 10000) / (double) 100; removedLines.appendChild(doc.createTextNode(removedLinesCount + " (" + percentage + "%)")); root.appendChild(removedLines); } if (addedLinesCount > 0) { Element addedLines = doc.createElement("addedLineCount"); double percentage = 100.0; if (sourceDiffFile.getOriginalLineCount() > 0) { percentage = Math.round( (double) addedLinesCount / (double) sourceDiffFile.getOriginalLineCount() * (double) 10000) / (double) 100; } addedLines.appendChild(doc.createTextNode(addedLinesCount + " (" + percentage + "%)")); root.appendChild(addedLines); } }