private List<UMLOperation> getAddedOperationsInMovedAndRenamedClasses() { List<UMLOperation> addedOperations = new ArrayList<UMLOperation>(); for(UMLClassMoveDiff classDiff : innerClassMoveDiffList) { addedOperations.addAll(classDiff.getAddedOperations()); } for(UMLClassMoveDiff classDiff : classMoveDiffList) { addedOperations.addAll(classDiff.getAddedOperations()); } for(UMLClassRenameDiff classDiff : classRenameDiffList) { addedOperations.addAll(classDiff.getAddedOperations()); } return addedOperations; }
@Override public int compare(UMLClassMoveDiff o1, UMLClassMoveDiff o2) { double sourceFolderDistance1 = o1.getMovedClass().normalizedSourceFolderDistance(o1.getOriginalClass()); double sourceFolderDistance2 = o2.getMovedClass().normalizedSourceFolderDistance(o2.getOriginalClass()); return Double.compare(sourceFolderDistance1, sourceFolderDistance2); } }
private List<UMLOperationBodyMapper> getOperationBodyMappersInMovedAndRenamedClasses() { List<UMLOperationBodyMapper> mappers = new ArrayList<UMLOperationBodyMapper>(); for(UMLClassMoveDiff classDiff : classMoveDiffList) { mappers.addAll(classDiff.getOperationBodyMapperList()); } for(UMLClassMoveDiff classDiff : innerClassMoveDiffList) { mappers.addAll(classDiff.getOperationBodyMapperList()); } for(UMLClassRenameDiff classDiff : classRenameDiffList) { mappers.addAll(classDiff.getOperationBodyMapperList()); } return mappers; }
UMLClassMoveDiff classMoveDiff = new UMLClassMoveDiff(removedClass, addedClass, this); diffSet.add(classMoveDiff); minClassMoveDiff.process(); classMoveDiffList.add(minClassMoveDiff); addedClasses.remove(minClassMoveDiff.getMovedClass()); removedClassIterator.remove(); for(int j=i+1; j<allClassMoves.size(); j++) { UMLClassMoveDiff classMoveJ = allClassMoves.get(j); if(classMoveI.isInnerClassMove(classMoveJ)) { innerClassMoveDiffList.add(classMoveJ);
private UMLClassBaseDiff getUMLClassDiffWithAttribute(Replacement pattern) { for(UMLClassDiff classDiff : commonClassDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getBefore()) != null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassMoveDiff classDiff : classMoveDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getBefore()) != null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassMoveDiff classDiff : innerClassMoveDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getBefore()) != null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassRenameDiff classDiff : classRenameDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getBefore()) != null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } return null; }
private UMLClassBaseDiff getUMLClassDiff(String className) { for(UMLClassDiff classDiff : commonClassDiffList) { if(classDiff.matches(className)) return classDiff; } for(UMLClassMoveDiff classDiff : classMoveDiffList) { if(classDiff.matches(className)) return classDiff; } for(UMLClassMoveDiff classDiff : innerClassMoveDiffList) { if(classDiff.matches(className)) return classDiff; } for(UMLClassRenameDiff classDiff : classRenameDiffList) { if(classDiff.matches(className)) return classDiff; } return null; }
refactorings.addAll(classDiff.getRefactorings()); extractRenamePatterns(classDiff, map); refactorings.addAll(classDiff.getRefactorings()); extractRenamePatterns(classDiff, map);
private UMLClassBaseDiff getUMLClassDiffWithNewAttributeAfter(Replacement pattern) { for(UMLClassDiff classDiff : commonClassDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getAfter()) == null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassMoveDiff classDiff : classMoveDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getAfter()) == null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassMoveDiff classDiff : innerClassMoveDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getAfter()) == null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassRenameDiff classDiff : classRenameDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getAfter()) == null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } return null; }
private UMLClassBaseDiff getUMLClassDiff(UMLType type) { for(UMLClassDiff classDiff : commonClassDiffList) { if(classDiff.matches(type)) return classDiff; } for(UMLClassMoveDiff classDiff : classMoveDiffList) { if(classDiff.matches(type)) return classDiff; } for(UMLClassMoveDiff classDiff : innerClassMoveDiffList) { if(classDiff.matches(type)) return classDiff; } for(UMLClassRenameDiff classDiff : classRenameDiffList) { if(classDiff.matches(type)) return classDiff; } return null; }
private String isMovedClass(UMLClass umlClass) { for(UMLClassMoveDiff moveDiff : classMoveDiffList) { if(moveDiff.getOriginalClass().equals(umlClass)) return moveDiff.getMovedClass().getName(); } return null; }
private UMLClassBaseDiff getUMLClassDiffWithExistingAttributeAfter(Replacement pattern) { for(UMLClassDiff classDiff : commonClassDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getAfter()) != null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassMoveDiff classDiff : classMoveDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getAfter()) != null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassMoveDiff classDiff : innerClassMoveDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getAfter()) != null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } for(UMLClassRenameDiff classDiff : classRenameDiffList) { if(classDiff.findAttributeInOriginalClass(pattern.getAfter()) != null && classDiff.findAttributeInNextClass(pattern.getAfter()) != null) return classDiff; } return null; }
private boolean conflictingMoveOfTopLevelClass(UMLClass removedClass, UMLClass addedClass) { if(!removedClass.isTopLevel() && !addedClass.isTopLevel()) { //check if classMoveDiffList contains already a move for the outer class to a different target for(UMLClassMoveDiff diff : classMoveDiffList) { if((diff.getOriginalClass().getName().startsWith(removedClass.getPackageName()) && !diff.getMovedClass().getName().startsWith(addedClass.getPackageName())) || (!diff.getOriginalClass().getName().startsWith(removedClass.getPackageName()) && diff.getMovedClass().getName().startsWith(addedClass.getPackageName()))) { return true; } } } return false; }
private boolean outerClassMovedOrRenamed(UMLClass umlClass) { if(!umlClass.isTopLevel()) { for(UMLClassMoveDiff diff : classMoveDiffList) { if(diff.getOriginalClass().getName().equals(umlClass.getPackageName()) || diff.getMovedClass().getName().equals(umlClass.getPackageName())) { return true; } } for(UMLClassRenameDiff diff : classRenameDiffList) { if(diff.getOriginalClass().getName().equals(umlClass.getPackageName()) || diff.getRenamedClass().getName().equals(umlClass.getPackageName())) { return true; } } } return false; }
List<MoveSourceFolderRefactoring> moveSourceFolderRefactorings = new ArrayList<MoveSourceFolderRefactoring>(); for(UMLClassMoveDiff classMoveDiff : classMoveDiffList) { UMLClass originalClass = classMoveDiff.getOriginalClass(); String originalName = originalClass.getName(); UMLClass movedClass = classMoveDiff.getMovedClass(); String movedName = movedClass.getName();