41f1ab209c0cd0c7af26ce02d42c9869ff6e484d
[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 Map<String,Material> materialMap = Collections.<String,Material>emptyMap();
14
15         private final TypedKey<Material> param;
16         
17         public MaterialColumnParser(Map<String,Material> materialMap, String columnName, TypedKey<Material> param) {
18                 super(columnName);
19                 this.param = param;
20                 this.materialMap = materialMap;
21         }
22         
23         public MaterialColumnParser(Map<String,Material> 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 m = materialMap.get(columnData);
36                 if ( m == null ) {
37                         m = new Material.Bulk(columnData, 0.0, true);
38                 }
39                 props.put(param, m);
40                 
41         }
42
43 }