public boolean containsExtractOperationRefactoring(UMLOperation sourceOperationBeforeExtraction, UMLOperation extractedOperation) { for(Refactoring ref : refactorings) { if(ref instanceof ExtractOperationRefactoring) { ExtractOperationRefactoring extractRef = (ExtractOperationRefactoring)ref; if(extractRef.getSourceOperationBeforeExtraction().equals(sourceOperationBeforeExtraction) && extractRef.getExtractedOperation().equalSignature(extractedOperation)) { return true; } } } return false; }
private void checkForExtractedOperations() { List<UMLOperation> operationsToBeRemoved = new ArrayList<UMLOperation>(); for(Iterator<UMLOperation> addedOperationIterator = addedOperations.iterator(); addedOperationIterator.hasNext();) { UMLOperation addedOperation = addedOperationIterator.next(); for(UMLOperationBodyMapper mapper : getOperationBodyMapperList()) { ExtractOperationDetection detection = new ExtractOperationDetection(addedOperations, modelDiff); ExtractOperationRefactoring refactoring = detection.check(mapper, addedOperation); if(refactoring != null) { refactorings.add(refactoring); UMLOperationBodyMapper operationBodyMapper = refactoring.getBodyMapper(); refactorings.addAll(operationBodyMapper.getRefactorings()); mapper.addAdditionalMapper(operationBodyMapper); operationsToBeRemoved.add(addedOperation); } } } addedOperations.removeAll(operationsToBeRemoved); }
public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getName()).append("\t"); sb.append(extractedOperation); sb.append(" extracted from "); sb.append(sourceOperationBeforeExtraction); sb.append(" in class "); sb.append(getClassName()); return sb.toString(); }
private String getClassName() { String sourceClassName = getSourceOperationBeforeExtraction().getClassName(); String targetClassName = getSourceOperationAfterExtraction().getClassName(); return sourceClassName.equals(targetClassName) ? sourceClassName : targetClassName; }
} else if (r instanceof ExtractOperationRefactoring) { ExtractOperationRefactoring ref = (ExtractOperationRefactoring) r; rs.add(new RefactoringRelationship(refactoringTypeOf(r), ref.getExtractedFromOperation().getKey(), ref.getExtractedOperation().getKey())); } else if (r instanceof InlineOperationRefactoring) { InlineOperationRefactoring ref = (InlineOperationRefactoring) r;
private List<UMLOperation> getAddedAndExtractedOperationsInCommonClasses() { List<UMLOperation> addedOperations = new ArrayList<UMLOperation>(); for(UMLClassDiff classDiff : commonClassDiffList) { addedOperations.addAll(classDiff.getAddedOperations()); for(Refactoring ref : classDiff.getRefactorings()) { if(ref instanceof ExtractOperationRefactoring) { ExtractOperationRefactoring extractRef = (ExtractOperationRefactoring)ref; addedOperations.add(extractRef.getExtractedOperation()); } } } return addedOperations; }
new ExtractOperationRefactoring(operationBodyMapper, mapper.getOperation2(), addedOperationInvocation); refactorings.add(extractOperationRefactoring); deleteAddedOperation(addedOperation);
public String getName() { return this.getRefactoringType().getDisplayName(); }
if(extractMatchCondition(operationBodyMapper, additionalExactMatches)) { if(delegateMethod == null) { return new ExtractOperationRefactoring(operationBodyMapper, mapper.getOperation2(), addedOperationInvocation); return new ExtractOperationRefactoring(operationBodyMapper, addedOperation, mapper.getOperation1(), mapper.getOperation2(), addedOperationInvocation);
} else if (r instanceof ExtractOperationRefactoring) { ExtractOperationRefactoring ref = (ExtractOperationRefactoring) r; rs.add(new RefactoringRelationship(r.getRefactoringType(), ref.getSourceOperationBeforeExtraction().getKey(), ref.getExtractedOperation().getKey())); } else if (r instanceof InlineOperationRefactoring) { InlineOperationRefactoring ref = (InlineOperationRefactoring) r;
} else if (r instanceof ExtractOperationRefactoring) { ExtractOperationRefactoring ref = (ExtractOperationRefactoring) r; rs.add(new RefactoringRelationship(r.getRefactoringType(), ref.getSourceOperationBeforeExtraction().getKey(), ref.getExtractedOperation().getKey())); } else if (r instanceof InlineOperationRefactoring) { InlineOperationRefactoring ref = (InlineOperationRefactoring) r;