X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=core%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fpreset%2Floader%2FMaterialColumnParser.java;h=415c11f19139344b89ff8e78a80b1c0eb5f85202;hb=4da92a4e994992a78d62a7ca21c88d6c41292d6f;hp=c6ef8c5fa0cd4529d7da73244f314dd9cd5a2764;hpb=20658742ca1417229d5ae383e28645d2aee71313;p=debian%2Fopenrocket diff --git a/core/src/net/sf/openrocket/preset/loader/MaterialColumnParser.java b/core/src/net/sf/openrocket/preset/loader/MaterialColumnParser.java index c6ef8c5f..415c11f1 100644 --- a/core/src/net/sf/openrocket/preset/loader/MaterialColumnParser.java +++ b/core/src/net/sf/openrocket/preset/loader/MaterialColumnParser.java @@ -1,30 +1,37 @@ package net.sf.openrocket.preset.loader; -import java.util.Collections; -import java.util.Map; - import net.sf.openrocket.material.Material; import net.sf.openrocket.preset.ComponentPreset; +import net.sf.openrocket.preset.TypedKey; import net.sf.openrocket.preset.TypedPropertyMap; public class MaterialColumnParser extends BaseColumnParser { - private Map materialMap = Collections.emptyMap(); + private final MaterialHolder materialMap; + + private final TypedKey param; - // FIXME - BULK vs other types. + public MaterialColumnParser(MaterialHolder materialMap, String columnName, TypedKey param) { + super(columnName); + this.param = param; + this.materialMap = materialMap; + } - public MaterialColumnParser(Map materialMap) { - super("Material"); + public MaterialColumnParser(MaterialHolder materialMap) { + this(materialMap, "Material", ComponentPreset.MATERIAL); } + @Override protected void doParse(String columnData, String[] data, TypedPropertyMap props) { - Material m = materialMap.get(columnData); - if ( m == null ) { - m = new Material.Bulk(columnData, 0.0, true); + if ( columnData == null || "".equals(columnData.trim())) { + return; } - props.put(ComponentPreset.MATERIAL, m); + + Material.Bulk tmpMaterial = (Material.Bulk) Material.newUserMaterial( Material.Type.BULK,columnData, 0.0); + Material.Bulk m = materialMap.getBulkMaterial(tmpMaterial); + props.put(param, m!= null ? m : tmpMaterial); }