From a4346a90701f3041d264edd428de000e3c8ff95a Mon Sep 17 00:00:00 2001 From: Runemoro Date: Tue, 25 Jun 2019 08:37:35 -0400 Subject: Add compose, convert, and invert commands (#152) * Add compose and invert commands and add support for conversion to tiny mappings * Improvements suggested by liach * Use Translator to get right entries --- .../enigma/command/InvertMappingsCommand.java | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java (limited to 'src/main/java/cuchaz/enigma/command/InvertMappingsCommand.java') 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 @@ +package cuchaz.enigma.command; + +import cuchaz.enigma.throwables.MappingParseException; +import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.tree.EntryTree; +import cuchaz.enigma.utils.Utils; + +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class InvertMappingsCommand extends Command { + public InvertMappingsCommand() { + super("invert-mappings"); + } + + @Override + public String getUsage() { + return " "; + } + + @Override + public boolean isValidArgument(int length) { + return length == 4; + } + + @Override + public void run(String... args) throws IOException, MappingParseException { + EntryTree source = MappingCommandsUtil.read(args[0], Paths.get(args[1])); + EntryTree result = MappingCommandsUtil.invert(source); + + Path output = Paths.get(args[3]); + Utils.delete(output); + MappingCommandsUtil.write(result, args[2], output); + } +} -- cgit v1.2.3