De-localize Material and FlightDataType objects when persisting in ork files. Added...
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / MaterialColumnParser.java
index 41f1ab209c0cd0c7af26ce02d42c9869ff6e484d..415c11f19139344b89ff8e78a80b1c0eb5f85202 100644 (file)
@@ -1,8 +1,5 @@
 package net.sf.openrocket.preset.loader;
 
-import java.util.Collections;
-import java.util.Map;
-
 import net.sf.openrocket.material.Material;
 import net.sf.openrocket.preset.ComponentPreset;
 import net.sf.openrocket.preset.TypedKey;
@@ -10,17 +7,17 @@ import net.sf.openrocket.preset.TypedPropertyMap;
 
 public class MaterialColumnParser extends BaseColumnParser {
 
-       private Map<String,Material> materialMap = Collections.<String,Material>emptyMap();
+       private final MaterialHolder materialMap;
 
        private final TypedKey<Material> param;
        
-       public MaterialColumnParser(Map<String,Material> materialMap, String columnName, TypedKey<Material> param) {
+       public MaterialColumnParser(MaterialHolder materialMap, String columnName, TypedKey<Material> param) {
                super(columnName);
                this.param = param;
                this.materialMap = materialMap;
        }
        
-       public MaterialColumnParser(Map<String,Material> materialMap) {
+       public MaterialColumnParser(MaterialHolder materialMap) {
                this(materialMap, "Material", ComponentPreset.MATERIAL);
        }
        
@@ -32,11 +29,9 @@ public class MaterialColumnParser extends BaseColumnParser {
                        return;
                }
                
-               Material m = materialMap.get(columnData);
-               if ( m == null ) {
-                       m = new Material.Bulk(columnData, 0.0, true);
-               }
-               props.put(param, m);
+               Material.Bulk tmpMaterial = (Material.Bulk) Material.newUserMaterial( Material.Type.BULK,columnData, 0.0);
+               Material.Bulk m = materialMap.getBulkMaterial(tmpMaterial);
+               props.put(param, m!= null ? m : tmpMaterial);
                
        }