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