public FDifference compareMethods( FDifference diff, MethodDescription leftMethod, MethodDescription rightMethod) { FDifference signDiff = basis.compareValues( "signature", leftMethod.getSignature().toString(), rightMethod.getSignature().toString(), leftMethod); FDifference descrDiff = basis.compareDescriptions( leftMethod.getName(), leftMethod.getSignature().getDescription(), rightMethod.getSignature().getDescription(), leftMethod); if (signDiff != null || descrDiff != null) { if (diff == null && signDiff != null) { diff = new FDifference(FDKind.ChangedElement, FDRating.Conflict); } else if (diff == null) { diff = new FDifference(FDKind.ChangedElement, FDRating.Info); } diff.addDifference(signDiff); diff.addDifference(descrDiff); } return diff; }
private FDifference comparePackageDescriptions( TypeDescription leftType, TypeDescription rightType, FDObject source) { FDifference nameDiff = null; FDifference descDiff = null; FDifference deleDiff = null; FDifference creaDiff = null; if (leftType.getPackage() != null) { if (rightType.getPackage() != null) { nameDiff = basis.compareNamedElements( "package description", leftType.getPackage(), rightType.getPackage(), leftType.getPackage()); descDiff = basis.compareDescriptions( leftType.getPackage(), rightType.getPackage(), leftType.getPackage()); } else { // Deleted package deleDiff = new FDifference(FDKind.DeletedElement, FDRating.Conflict); deleDiff.setSource(leftType.getPackage()); deleDiff.setDescription( "The package '" + leftType.getPackage().getName() + "' of type '" + leftType.getFqtn() + "' was removed in version " + this.getRightVersion()); } } else if (rightType.getPackage() != null) { // Created package creaDiff = new FDifference(FDKind.CreatedElement, FDRating.Conflict); creaDiff.setSource(rightType.getPackage()); creaDiff.setDescription( "The package '" + rightType.getPackage().getName() + "' was added to the type '" + leftType.getFqtn() + "' in version " + this.getRightVersion()); } FDifference diff = null; if (nameDiff != null || descDiff != null || deleDiff != null || creaDiff != null) { diff = new FDifference(FDKind.ChangedElement, FDRating.Conflict); diff.setSource(leftType.getPackage()); diff.setDescription( "The package description has changed in version " + this.getRightVersion()); diff.addDifference(nameDiff); diff.addDifference(descDiff); diff.addDifference(deleDiff); diff.addDifference(creaDiff); } return diff; }
public FDifference compareTypeDescriptions( CodingUnit leftCodingUnit, CodingUnit rightCodingUnit, FDObject source) { FDifference diff = null; TypeDescription leftType = proxy.getTypeDescription(leftCodingUnit.getTypeAPIPath()); TypeDescription rightType = proxy.getTypeDescription(rightCodingUnit.getTypeAPIPath()); if (leftType != null && rightType != null) { FDifference nameDiff = basis.compareNamedElements("type descriptions", leftType, rightType, source); FDifference descDiff = basis.compareDescriptions(leftType, rightType, source); FDifference fqtnDiff = basis.compareValues("FQTN", leftType.getFqtn(), rightType.getFqtn(), source); FDifference methDiff = this.compareMethodDescriptions(leftType, rightType, source); FDifference packDiff = this.comparePackageDescriptions(leftType, rightType, source); if (nameDiff != null || descDiff != null || fqtnDiff != null || methDiff != null || packDiff != null) { diff = new FDifference(FDKind.ChangedElement, FDRating.Warning); diff.setSource(leftCodingUnit); diff.setDescription( "The type description of '" + leftCodingUnit.getName() + "' has changed in version " + this.getRightVersion()); diff.addDifference(nameDiff); diff.addDifference(descDiff); diff.addDifference(fqtnDiff); diff.addDifference(methDiff); diff.addDifference(packDiff); } } return diff; }