private BaseNavigationFormat findFormat(String formatName) { List<NavigationFormat> formats = NavigationFormats.getWriteFormats(); for (NavigationFormat format : formats) if (formatName.equals(format.getClass().getSimpleName())) return (BaseNavigationFormat) format; return null; }
private void convert(File source, NavigationFormat format, File target) throws IOException { NavigationFileParser parser = new NavigationFileParser(); if (!parser.read(source)) { log.severe("Could not read source '" + source.getAbsolutePath() + "'"); logFormatNames(NavigationFormats.getReadFormatsSortedByName()); System.exit(20); } if (format.isSupportsMultipleRoutes()) { parser.write(parser.getAllRoutes(), (MultipleRoutesFormat) format, target); } else { int fileCount = NavigationFileParser.getNumberOfFilesToWriteFor(parser.getTheRoute(), format, false); File[] targets = Files.createTargetFiles( target, fileCount, format.getExtension(), format.getMaximumFileNameLength()); for (File t : targets) { if (t.exists()) { log.severe("Target '" + t.getAbsolutePath() + "' already exists; stopping."); System.exit(13); } } parser.write(parser.getTheRoute(), format, false, false, targets); } }
private void run(String[] args) { Version version = Version.parseVersionFromManifest(); log.info( "Started RouteConverter " + version.getVersion() + " from " + version.getDate() + " on " + Platform.getOsName() + " with " + Platform.getJvm()); if (args.length != 3) { log.info( "Usage: java -jar RouteConverterCmdLine.jar <source file> <target format> <target file>"); logFormatNames(NavigationFormats.getWriteFormatsSortedByName()); System.exit(5); } File source = new File(args[0]); if (!source.exists()) { log.severe("Source '" + source.getAbsolutePath() + "' does not exist; stopping."); System.exit(10); } BaseNavigationFormat format = findFormat(args[1]); if (format == null) { log.severe("Format '" + args[1] + "' does not exist; stopping."); logFormatNames(NavigationFormats.getWriteFormatsSortedByName()); System.exit(12); } String baseName = Files.removeExtension(args[2]); File target = new File(baseName + format.getExtension()); if (target.exists()) { log.severe("Target '" + target.getAbsolutePath() + "' already exists; stopping."); System.exit(13); } try { convert(source, format, target); } catch (IOException e) { log.severe("Error while converting: " + e.getMessage()); System.exit(15); } System.exit(0); }