diff --git a/src/main/java/org/codetracker/MethodTrackerChangeHistory.java b/src/main/java/org/codetracker/MethodTrackerChangeHistory.java index e213ec161c2..f437ac1c8f5 100644 --- a/src/main/java/org/codetracker/MethodTrackerChangeHistory.java +++ b/src/main/java/org/codetracker/MethodTrackerChangeHistory.java @@ -34,6 +34,7 @@ import com.github.difflib.patch.Patch; import gr.uom.java.xmi.UMLAnonymousClass; +import gr.uom.java.xmi.UMLAttribute; import gr.uom.java.xmi.UMLClass; import gr.uom.java.xmi.UMLComment; import gr.uom.java.xmi.UMLInitializer; @@ -77,6 +78,7 @@ import gr.uom.java.xmi.diff.SplitOperationRefactoring; import gr.uom.java.xmi.diff.SplitVariableRefactoring; import gr.uom.java.xmi.diff.UMLAnonymousClassDiff; +import gr.uom.java.xmi.diff.UMLAttributeDiff; import gr.uom.java.xmi.diff.UMLClassBaseDiff; import gr.uom.java.xmi.diff.UMLClassDiff; import gr.uom.java.xmi.diff.UMLClassMoveDiff; @@ -592,13 +594,13 @@ public Set isMethodContainerChanged(UMLModelDiff umlModelDiffAll, Collec } } if (umlModelDiffAll != null) { - for (UMLClassRenameDiff classRenameDiffList : umlModelDiffAll.getClassRenameDiffList()) { + for (UMLClassRenameDiff classRenameDiff : umlModelDiffAll.getClassRenameDiffList()) { if (found) break; - for (UMLOperationBodyMapper umlOperationBodyMapper : classRenameDiffList.getOperationBodyMapperList()) { + for (UMLOperationBodyMapper umlOperationBodyMapper : classRenameDiff.getOperationBodyMapperList()) { if (found) break; - found = addMethodChange(currentVersion, parentVersion, equalOperator, leftMethodSet, new RenameClassRefactoring(classRenameDiffList.getOriginalClass(), classRenameDiffList.getRenamedClass()), umlOperationBodyMapper.getContainer1(), umlOperationBodyMapper.getContainer2(), changeType); + found = addMethodChange(currentVersion, parentVersion, equalOperator, leftMethodSet, new RenameClassRefactoring(classRenameDiff.getOriginalClass(), classRenameDiff.getRenamedClass()), umlOperationBodyMapper.getContainer1(), umlOperationBodyMapper.getContainer2(), changeType); if (found) break; for (UMLAnonymousClassDiff anonymousClassDiff : umlOperationBodyMapper.getAnonymousClassDiffs()) { @@ -611,6 +613,40 @@ public Set isMethodContainerChanged(UMLModelDiff umlModelDiffAll, Collec } } } + for (UMLAttributeDiff diff : classRenameDiff.getAttributeDiffList()) { + if (found) + break; + if (diff.getInitializerMapper().isPresent()) { + for (UMLAnonymousClassDiff anonymousClassDiff : diff.getInitializerMapper().get().getAnonymousClassDiffs()) { + if (found) + break; + for (UMLOperationBodyMapper anonymousOperationBodyMapper : anonymousClassDiff.getOperationBodyMapperList()) { + found = addMethodChange(currentVersion, parentVersion, equalOperator, leftMethodSet, null, anonymousOperationBodyMapper.getContainer1(), anonymousOperationBodyMapper.getContainer2(), changeType); + if (found) + break; + } + } + } + } + for (Pair pair : classRenameDiff.getCommonAtrributes()) { + if (found) + break; + if (pair.getLeft().getAnonymousClassList().size() == pair.getRight().getAnonymousClassList().size() && pair.getLeft().getAnonymousClassList().size() > 0) { + for (int i=0; i isMethodContainerChanged(UMLModelDiff umlModelDiffAll, Collec } } } + for (UMLAttributeDiff diff : classMoveDiff.getAttributeDiffList()) { + if (found) + break; + if (diff.getInitializerMapper().isPresent()) { + for (UMLAnonymousClassDiff anonymousClassDiff : diff.getInitializerMapper().get().getAnonymousClassDiffs()) { + if (found) + break; + for (UMLOperationBodyMapper anonymousOperationBodyMapper : anonymousClassDiff.getOperationBodyMapperList()) { + found = addMethodChange(currentVersion, parentVersion, equalOperator, leftMethodSet, null, anonymousOperationBodyMapper.getContainer1(), anonymousOperationBodyMapper.getContainer2(), changeType); + if (found) + break; + } + } + } + } + for (Pair pair : classMoveDiff.getCommonAtrributes()) { + if (found) + break; + if (pair.getLeft().getAnonymousClassList().size() == pair.getRight().getAnonymousClassList().size() && pair.getLeft().getAnonymousClassList().size() > 0) { + for (int i=0; i isMethodContainerChanged(UMLModelDiff umlModelDiffAll, Collec } } } + for (UMLAttributeDiff diff : classDiff.getAttributeDiffList()) { + if (found) + break; + if (diff.getInitializerMapper().isPresent()) { + for (UMLAnonymousClassDiff anonymousClassDiff : diff.getInitializerMapper().get().getAnonymousClassDiffs()) { + if (found) + break; + for (UMLOperationBodyMapper anonymousOperationBodyMapper : anonymousClassDiff.getOperationBodyMapperList()) { + found = addMethodChange(currentVersion, parentVersion, equalOperator, leftMethodSet, null, anonymousOperationBodyMapper.getContainer1(), anonymousOperationBodyMapper.getContainer2(), changeType); + if (found) + break; + } + } + } + } + for (Pair pair : classDiff.getCommonAtrributes()) { + if (found) + break; + if (pair.getLeft().getAnonymousClassList().size() == pair.getRight().getAnonymousClassList().size() && pair.getLeft().getAnonymousClassList().size() > 0) { + for (int i=0; i