Skip to content
Snippets Groups Projects
Commit ea5e2761 authored by Bastien Sultan's avatar Bastien Sultan
Browse files

AMULET: patching state deletion method

parent 91b18c4b
No related branches found
No related tags found
2 merge requests!439Patching two methods on mutation compiler, creating a new CLI command for compiling a batch of mutations, adding some tests,!438Patching two bugs in mutation compiler
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>
...@@ -41,6 +41,7 @@ package avatartranslator.mutation; ...@@ -41,6 +41,7 @@ package avatartranslator.mutation;
import avatartranslator.*; import avatartranslator.*;
import myutil.TraceManager; import myutil.TraceManager;
import java.util.LinkedList;
import java.util.List; import java.util.List;
/** /**
...@@ -60,18 +61,27 @@ public class RmStateMutation extends StateMutation implements RmMutation { ...@@ -60,18 +61,27 @@ public class RmStateMutation extends StateMutation implements RmMutation {
public void apply(AvatarSpecification _avspec) throws ApplyMutationException { public void apply(AvatarSpecification _avspec) throws ApplyMutationException {
AvatarState state = getElement(_avspec); AvatarState state = getElement(_avspec);
AvatarStateMachine asm = getAvatarStateMachine(_avspec); AvatarStateMachine asm = getAvatarStateMachine(_avspec);
List<AvatarStateMachineElement> elements = asm.getListOfElements(); List<AvatarStateMachineElement> asmElements = asm.getListOfElements();
for (AvatarStateMachineElement element : elements) { List<AvatarStateMachineElement> asmElementsToRemove = new LinkedList<>();
if (element.getNexts().contains(state)){ for (AvatarStateMachineElement element : asmElements) {
for (AvatarStateMachineElement element2 : elements) { if (element.getNexts().contains(state)) {
if (element2.getNexts().contains(element)){ for (AvatarStateMachineElement element2 : asmElements) {
if (element2.getNexts().contains(element)) {
element2.removeNext(element); element2.removeNext(element);
} }
} }
asm.removeElement(element); asmElementsToRemove.add(element);
} }
if (element == state) {
for (AvatarStateMachineElement element3 : state.getNexts()) {
asmElementsToRemove.add(element3);
}
}
}
System.out.println(asmElementsToRemove.toString());
for (AvatarStateMachineElement element : asmElementsToRemove){
asm.removeElement(element);
} }
state.removeAllNexts();
asm.removeElement(state); asm.removeElement(state);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment