if(!mappings.isEmpty()) {
if(operationBodyMapper.nonMappedElementsT1() == 0 && operationBodyMapper.nonMappedElementsT2() == 0 && mappings.size() == operationBodyMapper.exactMatches()) {
mapperSet.add(operationBodyMapper);</BUG>
}
<BUG>else if(mappings.size() > operationBodyMapper.nonMappedElementsT1() &&
mappings.size() > operationBodyMapper.nonMappedElementsT2() &&
computeAbsoluteDifferenceInPositionWithinClass(removedOperation, addedOperation) <= MAX_DIFFERENCE_IN_POSITION &&</BUG>
(addedOperation.equalParameterTypes(removedOperation) || addedOperation.overloadedParameterTypes(removedOperation) || addedOperation.replacedParameterTypes(removedOperation))) {
UMLOperation removedOperationInNextClass = matchingRemovedOperationInNextClassCallsAddedOperation(removedOperation, addedOperation);
if(removedOperationInNextClass != null) {

UMLOperation addedOperation = addedOperationIterator.next();
UMLOperationBodyMapper operationBodyMapper = new UMLOperationBodyMapper(removedOperation, addedOperation);
operationBodyMapper.getMappings();
int mappings = operationBodyMapper.mappingsWithoutBlocks();
if(mappings > 0) {
if(operationBodyMapper.nonMappedElementsT1() == 0 && operationBodyMapper.nonMappedElementsT2() == 0 && mappings == operationBodyMapper.exactMatches()) {
mapperSet.add(operationBodyMapper);
}
else if(mappings > operationBodyMapper.nonMappedElementsT1() &&
mappings > operationBodyMapper.nonMappedElementsT2() &&
computeAbsoluteDifferenceInPositionWithinClass(removedOperation, addedOperation) <= MAX_DIFFERENCE_IN_POSITION &&
(addedOperation.equalParameterTypes(removedOperation) || addedOperation.overloadedParameterTypes(removedOperation) || addedOperation.replacedParameterTypes(removedOperation))) {
UMLOperation removedOperationInNextClass = matchingRemovedOperationInNextClassCallsAddedOperation(removedOperation, addedOperation);
if(removedOperationInNextClass != null) {
