1 package net.sf.openrocket.preset.xml;
3 import java.io.BufferedInputStream;
4 import java.io.InputStream;
5 import java.io.InputStreamReader;
6 import java.util.Collection;
9 import javax.xml.bind.JAXBException;
11 import net.sf.openrocket.file.Loader;
12 import net.sf.openrocket.logging.LogHelper;
13 import net.sf.openrocket.preset.ComponentPreset;
14 import net.sf.openrocket.preset.InvalidComponentPresetException;
15 import net.sf.openrocket.startup.Application;
16 import net.sf.openrocket.util.BugException;
18 public class OpenRocketComponentLoader implements Loader<ComponentPreset> {
20 private static final LogHelper log = Application.getLogger();
23 public Collection<ComponentPreset> load(InputStream stream, String filename) {
25 log.debug("Loading presets from file " + filename);
27 if ( ! (stream instanceof BufferedInputStream) ) {
28 stream = new BufferedInputStream(stream);
32 List<ComponentPreset> presets;
33 presets = (new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent( new InputStreamReader (stream))).asComponentPresets();
34 log.debug("ComponentPreset file " + filename + " contained " + presets.size() + " presets");
36 } catch (JAXBException e) {
37 throw new BugException("Unable to parse file: "+ filename, e);
38 } catch (InvalidComponentPresetException e) {
39 throw new BugException("Unable to parse file: "+ filename, e);