Implement MaterialHolder, a container for the Material objects loaded during processi...
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / MaterialColumnParser.java
1 package net.sf.openrocket.preset.loader;
2
3 import java.util.Collections;
4 import java.util.Map;
5
6 import net.sf.openrocket.material.Material;
7 import net.sf.openrocket.preset.ComponentPreset;
8 import net.sf.openrocket.preset.TypedKey;
9 import net.sf.openrocket.preset.TypedPropertyMap;
10
11 public class MaterialColumnParser extends BaseColumnParser {
12
13         private final MaterialHolder materialMap;
14
15         private final TypedKey<Material> param;
16         
17         public MaterialColumnParser(MaterialHolder materialMap, String columnName, TypedKey<Material> param) {
18                 super(columnName);
19                 this.param = param;
20                 this.materialMap = materialMap;
21         }
22         
23         public MaterialColumnParser(MaterialHolder materialMap) {
24                 this(materialMap, "Material", ComponentPreset.MATERIAL);
25         }
26         
27
28         @Override
29         protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
30
31                 if ( columnData == null || "".equals(columnData.trim())) {
32                         return;
33                 }
34                 
35                 Material.Bulk m = new Material.Bulk(columnData, 0.0, true);
36                 m = materialMap.getBulkMaterial(m);
37                 props.put(param, m);
38                 
39         }
40
41 }