1 package net.sf.openrocket.preset.loader;
3 import net.sf.openrocket.preset.ComponentPreset;
4 import net.sf.openrocket.preset.ComponentPresetFactory;
5 import net.sf.openrocket.preset.InvalidComponentPresetException;
6 import net.sf.openrocket.preset.TypedPropertyMap;
9 import java.util.ArrayList;
10 import java.util.List;
12 public abstract class BaseComponentLoader extends RocksimComponentFileLoader {
14 List<ComponentPreset> presets;
16 public BaseComponentLoader(MaterialHolder materials, File theBasePathToLoadFrom) {
17 super(theBasePathToLoadFrom);
18 presets = new ArrayList<ComponentPreset>();
20 fileColumns.add( new ManufacturerColumnParser() );
21 fileColumns.add( new StringColumnParser("Part No.", ComponentPreset.PARTNO));
22 fileColumns.add( new StringColumnParser("Desc.", ComponentPreset.DESCRIPTION));
23 fileColumns.add(new MaterialColumnParser(materials));
24 fileColumns.add(new MassColumnParser("Mass","Mass units"));
28 protected abstract ComponentPreset.Type getComponentPresetType();
30 public List<ComponentPreset> getPresets() {
35 protected void postProcess(TypedPropertyMap props) {
37 //Some Rocksim files don't contain description, so set it to the part no when not available.
38 if (!props.containsKey(ComponentPreset.DESCRIPTION)) {
39 props.put(ComponentPreset.DESCRIPTION, props.get(ComponentPreset.PARTNO));
41 props.put(ComponentPreset.TYPE, getComponentPresetType());
42 ComponentPreset preset = ComponentPresetFactory.create(props);
44 } catch ( InvalidComponentPresetException ex ) {
45 System.err.println(ex.getMessage());
46 System.err.println(props);