diff --git a/src/main/java/ftbsc/lll/mapper/writer/MappingWriter.java b/src/main/java/ftbsc/lll/mapper/writer/MappingWriter.java index f5f7b10..2cc8007 100644 --- a/src/main/java/ftbsc/lll/mapper/writer/MappingWriter.java +++ b/src/main/java/ftbsc/lll/mapper/writer/MappingWriter.java @@ -21,60 +21,57 @@ public class MappingWriter { /** * The main function, must be passed exactly two arguments * @param args the command line arguments - * @throws IOException if something goes wrong + * @throws IOException if something goes wrong while writing the file + * @throws ParseException if something goes wrong while parsin arguments */ public static void main(String[] args) throws IOException, ParseException { - try { - Options options = new Options() - .addOption("r", "reverse", false, "Writes down inverted mappings"); - DefaultParser parser = new DefaultParser(); - CommandLine cmdLine = parser.parse(options, args); - args = cmdLine.getArgs(); + Options options = new Options() + .addOption("r", "reverse", false, "Writes down inverted mappings"); + DefaultParser parser = new DefaultParser(); + CommandLine cmdLine = parser.parse(options, args); + args = cmdLine.getArgs(); - if(args.length != 3) { - System.err.println("Bad argument count!"); - System.err.println("java -jar mapping-writer.jar [-r] "); - return; - } - - //load the mapper - List lines = MapperProvider.fetchFromLocalOrRemote(args[0]); - IMapper mapper = MapperProvider.getMapper(lines); - mapper.populate(lines, false); - if(cmdLine.hasOption("reverse")) - mapper = mapper.getInverted(); - - //load the writers - Map writerMap = new HashMap<>(); - for(IWriter w : ServiceLoader.load(IWriter.class)) - writerMap.put(w.uniqueId(), w); - - //get the one we need - IWriter writer = writerMap.get(args[1]); - if(writer == null) { - System.err.printf("%s was not recognised as a valid format!", args[1]); - return; - } - - //now for the file - File targetFile = new File(args[2]); - - if(!targetFile.createNewFile()) { - System.out.println("File already exists!"); - return; - } - - if(!targetFile.canWrite()) { - System.out.println("Failed to write to file: access denied."); - return; - } - - //call the writer - PrintWriter printWriter = new PrintWriter(new FileWriter(targetFile)); - writer.write(mapper, printWriter); - printWriter.close(); - } catch(ParseException ex) { - ex.printStackTrace(); + if(args.length != 3) { + System.err.println("Bad argument count!"); + System.err.println("java -jar mapping-writer.jar [-r] "); + return; } + + //load the mapper + List lines = MapperProvider.fetchFromLocalOrRemote(args[0]); + IMapper mapper = MapperProvider.getMapper(lines); + mapper.populate(lines, false); + if(cmdLine.hasOption("reverse")) + mapper = mapper.getInverted(); + + //load the writers + Map writerMap = new HashMap<>(); + for(IWriter w : ServiceLoader.load(IWriter.class)) + writerMap.put(w.uniqueId(), w); + + //get the one we need + IWriter writer = writerMap.get(args[1]); + if(writer == null) { + System.err.printf("%s was not recognised as a valid format!", args[1]); + return; + } + + //now for the file + File targetFile = new File(args[2]); + + if(!targetFile.createNewFile()) { + System.out.println("File already exists!"); + return; + } + + if(!targetFile.canWrite()) { + System.out.println("Failed to write to file: access denied."); + return; + } + + //call the writer + PrintWriter printWriter = new PrintWriter(new FileWriter(targetFile)); + writer.write(mapper, printWriter); + printWriter.close(); } }