Skip to content

Commit

Permalink
Improvement in extraction of replacements involving method invocation
Browse files Browse the repository at this point in the history
  • Loading branch information
tsantalis committed Dec 17, 2024
1 parent 00028d2 commit 838ead3
Showing 1 changed file with 15 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import gr.uom.java.xmi.decomposition.replacement.CompositeReplacement;
import gr.uom.java.xmi.decomposition.replacement.IntersectionReplacement;
import gr.uom.java.xmi.decomposition.replacement.MethodInvocationReplacement;
import gr.uom.java.xmi.decomposition.replacement.ClassInstanceCreationWithMethodInvocationReplacement;
import gr.uom.java.xmi.decomposition.replacement.Replacement;
import gr.uom.java.xmi.decomposition.replacement.Replacement.ReplacementType;
import gr.uom.java.xmi.diff.UMLAnonymousClassDiff;
Expand Down Expand Up @@ -4178,6 +4179,20 @@ public Set<Replacement> getReplacementsInvolvingMethodInvocation() {
}
}
}
else if(methodInvocations2.size() > methodInvocations1.size()) {
List<AbstractCall> creations1 = lambda1.getAllCreations();
List<AbstractCall> creations2 = lambda2.getAllCreations();
if(creations2.isEmpty() && creations1.size() == 1) {
for(int i=0; i<methodInvocations2.size(); i++) {
AbstractCall call2 = methodInvocations2.get(i);
if(!methodInvocations1.contains(call2)) {
ClassInstanceCreationWithMethodInvocationReplacement r = new ClassInstanceCreationWithMethodInvocationReplacement(
creations1.get(0).actualString(), call2.actualString(), (ObjectCreation)creations1.get(0), call2, ReplacementType.CLASS_INSTANCE_CREATION_REPLACED_WITH_METHOD_INVOCATION);
replacements.add(r);
}
}
}
}
}
}
}
Expand Down

0 comments on commit 838ead3

Please sign in to comment.