fc797fbd872c9ce8ef193725f05731781785d789
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / SurfaceMaterialColumnParser.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.TypedKey;
8 import net.sf.openrocket.preset.TypedPropertyMap;
9
10 public class SurfaceMaterialColumnParser extends BaseColumnParser {
11
12         private Map<String,Material> materialMap = Collections.<String,Material>emptyMap();
13
14         private final TypedKey<Material> param;
15         
16         public SurfaceMaterialColumnParser(Map<String,Material> materialMap, String columnName, TypedKey<Material> param) {
17                 super(columnName);
18                 this.param = param;
19                 this.materialMap = materialMap;
20         }
21         
22
23         @Override
24         protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
25
26                 if ( columnData == null || "".equals(columnData.trim())) {
27                         return;
28                 }
29                 
30                 Material.Surface myMaterial;
31
32                 Material m = materialMap.get(columnData);
33                 
34                 if ( m == null || m.getType() != Material.Type.SURFACE ) {
35                         myMaterial = new Material.Surface(columnData, 0.0, true);
36                 } else {
37                         myMaterial =(Material.Surface) m;
38                 }
39                 
40                 props.put(param, myMaterial);
41
42         }
43
44 }