Exemple #1
0
  private FDifference compareMethodDescriptions(
      TypeDescription leftType, TypeDescription rightType, FDObject source) {
    FDifference diff = null;

    if (leftType.getMethods() != null) {
      if (rightType.getMethods() != null) {
        FDifference subDiff =
            compareMethodLists(leftType.getMethods(), rightType.getMethods(), leftType);
        if (subDiff != null) {
          if (diff == null) {
            diff = new FDifference(FDKind.ChangedElement, subDiff.getRating());
          }
          diff.addDifference(subDiff);
        }
      } else {
        // Deleted methods
        FDifference delDiff = new FDifference(FDKind.DeletedElement, FDRating.Conflict);
        delDiff.setSource(leftType);
        delDiff.setDescription(
            leftType.getMethods().size()
                + " were removed from type '"
                + leftType.getFqtn()
                + "' in version "
                + this.getRightVersion());
        if (diff == null) {
          diff = new FDifference(FDKind.ChangedElement, FDRating.Conflict);
        }
        diff.addDifference(delDiff);
      }
    } else if (rightType.getMethods() != null) {
      // New methods
      FDifference addDiff = new FDifference(FDKind.CreatedElement, FDRating.Warning);
      addDiff.setSource(rightType);
      addDiff.setDescription(
          "The type '"
              + rightType.getFqtn()
              + "' has "
              + rightType.getMethods().size()
              + " new methods in version "
              + this.getRightVersion());
      if (diff == null) {
        diff = new FDifference(FDKind.ChangedElement, FDRating.Conflict);
      }
      diff.addDifference(addDiff);
    }

    if (diff != null) {
      diff.setSource(leftType);
      diff.setDescription(
          "The type description of '"
              + leftType.getFqtn()
              + "' has changed in version "
              + this.getRightVersion());
    }
    return diff;
  }