package net.sf.openrocket.preset.loader; import net.sf.openrocket.database.Databases; import net.sf.openrocket.material.Material; import net.sf.openrocket.preset.ComponentPreset; import net.sf.openrocket.preset.TypedKey; import net.sf.openrocket.preset.TypedPropertyMap; import net.sf.openrocket.util.StringUtil; public class MaterialColumnParser extends BaseColumnParser { private final MaterialHolder materialMap; private final TypedKey<Material> param; public MaterialColumnParser(MaterialHolder materialMap, String columnName, TypedKey<Material> param) { super(columnName); this.param = param; this.materialMap = materialMap; } public MaterialColumnParser(MaterialHolder materialMap) { this(materialMap, "Material", ComponentPreset.MATERIAL); } @Override protected void doParse(String columnData, String[] data, TypedPropertyMap props) { if (StringUtil.isEmpty(columnData)) { return; } Material.Bulk tmpMaterial = (Material.Bulk) Databases.findMaterial(Material.Type.BULK, columnData, 0.0); Material.Bulk m = materialMap.getBulkMaterial(tmpMaterial); props.put(param, m != null ? m : tmpMaterial); } }