Ejemplo n.º 1
0
  /**
   * 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);
    }
  }