create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / LineMaterialColumnParser.java
index c888845e0a074f7676c1d46d2506e01719c9322d..42a79722a983c5f55306e2decec2e262a25f00e9 100644 (file)
@@ -1,44 +1,35 @@
 package net.sf.openrocket.preset.loader;
 
-import java.util.Collections;
-import java.util.Map;
-
+import net.sf.openrocket.database.Databases;
 import net.sf.openrocket.material.Material;
 import net.sf.openrocket.preset.TypedKey;
 import net.sf.openrocket.preset.TypedPropertyMap;
 
 public class LineMaterialColumnParser extends BaseColumnParser {
-
-       private Map<String,Material> materialMap = Collections.<String,Material>emptyMap();
-
+       
+       private final MaterialHolder materialMap;
+       
        private final TypedKey<Material> param;
        
-       public LineMaterialColumnParser(Map<String,Material> materialMap, String columnName, TypedKey<Material> param) {
+       public LineMaterialColumnParser(MaterialHolder materialMap, String columnName, TypedKey<Material> param) {
                super(columnName);
                this.param = param;
                this.materialMap = materialMap;
        }
        
-
+       
        @Override
        protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
-
-               if ( columnData == null || "".equals(columnData.trim())) {
+               
+               if (columnData == null || "".equals(columnData.trim())) {
                        return;
                }
                
-               Material.Line myMaterial;
-
-               Material m = materialMap.get(columnData);
+               Material.Line myMaterial = (Material.Line) Databases.findMaterial(Material.Type.LINE, columnData, 0.0);
                
-               if ( m == null || m.getType() != Material.Type.LINE ) {
-                       myMaterial = new Material.Line(columnData, 0.0, true);
-               } else {
-                       myMaterial =(Material.Line) m;
-               }
+               Material.Line m = materialMap.getLineMaterial(myMaterial);
+               props.put(param, m != null ? m : myMaterial);
                
-               props.put(param, myMaterial);
-
        }
-
+       
 }