4 package net.sf.openrocket.file.rocksim.importt;
6 import java.io.IOException;
7 import java.io.InputStream;
9 import net.sf.openrocket.document.OpenRocketDocument;
10 import net.sf.openrocket.file.AbstractRocketLoader;
11 import net.sf.openrocket.file.RocketLoadException;
12 import net.sf.openrocket.file.simplesax.SimpleSAX;
14 import org.xml.sax.InputSource;
15 import org.xml.sax.SAXException;
18 * This class is the main entry point for Rocksim design file imported to OpenRocket. Currently only Rocksim v9
19 * file formats are supported, although it is possible that v8 formats will work for most components.
21 * In the cases of v9 components that exist in Rocksim but have no corollary in OpenRocket a message is added to
22 * a warning set and presented to the user. In effect, this loading is a 'best-effort' mapping and is not meant to
23 * be an exact representation of any possible Rocksim design in an OpenRocket format.
25 * Rocksim simulations are not imported.
28 * Material interface (or at least make them abstract in RocketComponent)
32 public class RocksimLoader extends AbstractRocketLoader {
34 * This method is called by the default implementations of {@link #load(java.io.File)}
35 * and {@link #load(java.io.InputStream)} to load the rocket.
37 * @throws net.sf.openrocket.file.RocketLoadException
38 * if an error occurs during loading.
41 protected OpenRocketDocument loadFromStream(InputStream source) throws IOException, RocketLoadException {
43 InputSource xmlSource = new InputSource(source);
45 RocksimHandler handler = new RocksimHandler();
48 SimpleSAX.readXML(xmlSource, handler, warnings);
49 } catch (SAXException e) {
50 throw new RocketLoadException("Malformed XML in input.", e);
53 final OpenRocketDocument document = handler.getDocument();
54 document.setFile(null);