1 package net.sf.openrocket.preset.xml;
3 import java.io.InputStream;
4 import java.io.InputStreamReader;
5 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 Set<String> favorites = Application.getPreferences().getComponentFavorites();
30 List<ComponentPreset> presets;
31 presets = (new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent( new InputStreamReader (stream))).asComponentPresets();
32 for( ComponentPreset preset : presets ) {
33 if ( favorites.contains(preset.preferenceKey())) {
34 preset.setFavorite(true);
37 log.debug("ComponentPreset file " + filename + " contained " + presets.size() + " presets");
39 } catch (JAXBException e) {
40 throw new BugException("Unable to parse file: "+ filename, e);
41 } catch (InvalidComponentPresetException e) {
42 throw new BugException("Unable to parse file: "+ filename, e);