package net.sf.openrocket.preset.loader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.openrocket.material.Material;
import net.sf.openrocket.preset.ComponentPreset;
import net.sf.openrocket.preset.ComponentPresetFactory;
import net.sf.openrocket.preset.InvalidComponentPresetException;
import net.sf.openrocket.preset.TypedPropertyMap;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
public abstract class BaseComponentLoader extends RocksimComponentFileLoader {
List<ComponentPreset> presets;
- public BaseComponentLoader(MaterialHolder materials) {
- super();
+ public BaseComponentLoader(MaterialHolder materials, File theBasePathToLoadFrom) {
+ super(theBasePathToLoadFrom);
presets = new ArrayList<ComponentPreset>();
fileColumns.add( new ManufacturerColumnParser() );
}
protected abstract ComponentPreset.Type getComponentPresetType();
-
+
public List<ComponentPreset> getPresets() {
return presets;
}
-
+
@Override
protected void postProcess(TypedPropertyMap props) {
try {
+ //Some Rocksim files don't contain description, so set it to the part no when not available.
+ if (!props.containsKey(ComponentPreset.DESCRIPTION)) {
+ props.put(ComponentPreset.DESCRIPTION, props.get(ComponentPreset.PARTNO));
+ }
props.put(ComponentPreset.TYPE, getComponentPresetType());
ComponentPreset preset = ComponentPresetFactory.create(props);
presets.add(preset);