From: plaa Date: Sat, 31 Dec 2011 17:35:06 +0000 (+0000) Subject: rocksim file converter X-Git-Tag: upstream/12.03~1^2~217 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=70a5595aca107154414c15123c5125a164480634;p=debian%2Fopenrocket rocksim file converter git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@253 180e2498-e6e9-4542-8430-84ac67f01cd8 --- diff --git a/src/net/sf/openrocket/utils/RocksimConverter.java b/src/net/sf/openrocket/utils/RocksimConverter.java new file mode 100644 index 00000000..ddfc1fcb --- /dev/null +++ b/src/net/sf/openrocket/utils/RocksimConverter.java @@ -0,0 +1,86 @@ +package net.sf.openrocket.utils; + +import java.io.File; +import java.io.IOException; +import java.util.Locale; + +import net.sf.openrocket.document.OpenRocketDocument; +import net.sf.openrocket.document.StorageOptions; +import net.sf.openrocket.file.RocketLoadException; +import net.sf.openrocket.file.RocketLoader; +import net.sf.openrocket.file.RocketSaver; +import net.sf.openrocket.file.openrocket.OpenRocketSaver; +import net.sf.openrocket.file.rocksim.RocksimLoader; +import net.sf.openrocket.gui.util.SwingPreferences; +import net.sf.openrocket.l10n.ResourceBundleTranslator; +import net.sf.openrocket.logging.LogLevel; +import net.sf.openrocket.startup.Application; + +/** + * Utility that loads Rocksim file formats and saves them in ORK format. + * File is saved with the .rkt extension replaced with .ork. + * + * Usage: + * java -cp OpenRocket.jar net.sf.openrocket.utils.RocksimConverter + * + * @author Sampo Niskanen + */ +public class RocksimConverter { + + + public static void main(String[] args) { + + setup(); + + RocketLoader loader = new RocksimLoader(); + RocketSaver saver = new OpenRocketSaver(); + + for (String inputFile : args) { + System.out.println("Converting " + inputFile + "..."); + + if (!inputFile.matches(".*\\.[rR][kK][tT]$")) { + System.err.println("ERROR: File '" + inputFile + "' does not end in .rkt, skipping."); + continue; + } + + String outputFile = inputFile.replaceAll("\\.[rR][kK][tT]$", ".ork"); + + File input = new File(inputFile); + File output = new File(outputFile); + + if (!input.isFile()) { + System.err.println("ERROR: File '" + inputFile + "' does not exist, skipping."); + continue; + } + if (output.exists()) { + System.err.println("ERROR: File '" + outputFile + "' already exists, skipping."); + continue; + } + + try { + StorageOptions opts = new StorageOptions(); + opts.setCompressionEnabled(true); + opts.setSimulationTimeSkip(StorageOptions.SIMULATION_DATA_NONE); + opts.setExplicitlySet(true); + + OpenRocketDocument document = loader.load(input); + saver.save(output, document, opts); + + } catch (RocketLoadException e) { + System.err.println("ERROR: Error loading '" + inputFile + "': " + e.getMessage()); + } catch (IOException e) { + System.err.println("ERROR: Error saving '" + outputFile + "': " + e.getMessage()); + } + + } + + } + + private static void setup() { + Locale.setDefault(Locale.US); + Application.setBaseTranslator(new ResourceBundleTranslator("l10n.messages")); + + Application.setLogOutputLevel(LogLevel.WARN); + Application.setPreferences(new SwingPreferences()); + } +}