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

Adding a new command for executing a batch of mutations from a file

parent 06c004d1
No related branches found
No related tags found
1 merge request!439Patching two methods on mutation compiler, creating a new CLI command for compiling a batch of mutations, adding some tests
This commit is part of merge request !439. Comments created here will be created in the context of that merge request.
<?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>
...@@ -69,6 +69,9 @@ import ui.*; ...@@ -69,6 +69,9 @@ import ui.*;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
...@@ -116,6 +119,7 @@ public class Action extends Command { ...@@ -116,6 +119,7 @@ public class Action extends Command {
private final static String SELECT_PANEL = "select-panel"; private final static String SELECT_PANEL = "select-panel";
private final static String AVATAR_MUTATION = "avatar-mutation"; private final static String AVATAR_MUTATION = "avatar-mutation";
private final static String AVATAR_MUTATION_BATCH = "avatar-mutation-batch";
private final static String AVATAR_DRAW = "avatar-draw"; private final static String AVATAR_DRAW = "avatar-draw";
private final static String AVATAR_PRINT = "avatar-draw"; private final static String AVATAR_PRINT = "avatar-draw";
private final static String AVATAR_RG_GENERATION = "avatar-rg"; private final static String AVATAR_RG_GENERATION = "avatar-rg";
...@@ -1032,6 +1036,76 @@ public class Action extends Command { ...@@ -1032,6 +1036,76 @@ public class Action extends Command {
} }
}; };
Command makeMutationBatchFromAvatar = new Command() {
public String getCommand() {
return AVATAR_MUTATION_BATCH;
}
public String getShortCommand() {
return "amb";
}
public String getDescription() {
return "Perform a series of mutations on an AVATAR spec";
}
public String getUsage() {
return "[MUTATION]\n";
}
public String getExample() {
return "amb path_to_command_file";
}
public String executeCommand(String command, Interpreter interpreter) {
if (!interpreter.isTToolStarted()) {
return Interpreter.TTOOL_NOT_STARTED;
}
String[] commands = command.split(" ");
if (commands.length < 1) {
return Interpreter.BAD;
}
AvatarSpecification spec = interpreter.mgui.gtm.getAvatarSpecification();
if (spec == null) {
return "No AVATAR specification";
}
List<String> mutationList = null;
try {
mutationList = Files.readAllLines(new File(command).toPath());
} catch (IOException e) {
throw new RuntimeException(e);
}
for (String mutationCommand:mutationList){
try {
AvatarMutation am = AvatarMutation.createFromString(mutationCommand);
if (am != null) {
am.apply(spec);
}
} catch (ParseMutationException e) {
TraceManager.addDev("Exception in parsing mutation: " + e.getMessage());
return e.getMessage();
} catch (ApplyMutationException e) {
TraceManager.addDev("Exception in applying mutation: " + e.getMessage());
return e.getMessage();
}
}
return null;
}
};
Command printAvatarSpec = new Command() { Command printAvatarSpec = new Command() {
public String getCommand() { public String getCommand() {
return AVATAR_PRINT; return AVATAR_PRINT;
...@@ -1762,6 +1836,7 @@ public class Action extends Command { ...@@ -1762,6 +1836,7 @@ public class Action extends Command {
addAndSortSubcommand(printAvatarSpec); addAndSortSubcommand(printAvatarSpec);
addAndSortSubcommand(makeMutationFromAvatar); addAndSortSubcommand(makeMutationFromAvatar);
addAndSortSubcommand(makeMutationBatchFromAvatar);
addAndSortSubcommand(drawAvatarSpec); addAndSortSubcommand(drawAvatarSpec);
addAndSortSubcommand(avatarSimulationToBrk); addAndSortSubcommand(avatarSimulationToBrk);
addAndSortSubcommand(avatarSimulationSelectTrace); addAndSortSubcommand(avatarSimulationSelectTrace);
......
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