summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java')
-rw-r--r--src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java b/src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java
new file mode 100644
index 0000000..bfe8308
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java
@@ -0,0 +1,36 @@
1package cuchaz.enigma.command;
2
3import cuchaz.enigma.throwables.MappingParseException;
4import cuchaz.enigma.translation.mapping.EntryMapping;
5import cuchaz.enigma.translation.mapping.tree.EntryTree;
6import cuchaz.enigma.utils.Utils;
7
8import java.io.IOException;
9import java.nio.file.Path;
10import java.nio.file.Paths;
11
12public class InvertMappingsCommand extends Command {
13 public InvertMappingsCommand() {
14 super("invert-mappings");
15 }
16
17 @Override
18 public String getUsage() {
19 return "<source-format> <source> <result-format> <result>";
20 }
21
22 @Override
23 public boolean isValidArgument(int length) {
24 return length == 4;
25 }
26
27 @Override
28 public void run(String... args) throws IOException, MappingParseException {
29 EntryTree<EntryMapping> source = MappingCommandsUtil.read(args[0], Paths.get(args[1]));
30 EntryTree<EntryMapping> result = MappingCommandsUtil.invert(source);
31
32 Path output = Paths.get(args[3]);
33 Utils.delete(output);
34 MappingCommandsUtil.write(result, args[2], output);
35 }
36}