Change the semantics of MaterialHolder.getXXXMaterial( Material ), instead of returni...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 6 Jun 2012 12:09:39 +0000 (12:09 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 6 Jun 2012 12:09:39 +0000 (12:09 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@761 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/preset/loader/LineMaterialColumnParser.java
core/src/net/sf/openrocket/preset/loader/MaterialColumnParser.java
core/src/net/sf/openrocket/preset/loader/MaterialHolder.java
core/src/net/sf/openrocket/preset/loader/ParachuteLoader.java
core/src/net/sf/openrocket/preset/loader/StreamerLoader.java
core/src/net/sf/openrocket/preset/loader/SurfaceMaterialColumnParser.java

index 009619c53225ca8d180e127283dd87717b5aa230..4e4bc6835bc179c7c00f62697283896871347592 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.TypedKey;
 import net.sf.openrocket.preset.TypedPropertyMap;
@@ -29,8 +26,8 @@ public class LineMaterialColumnParser extends BaseColumnParser {
                
                Material.Line myMaterial = new Material.Line(columnData, 0.0, true);
 
-               myMaterial = materialMap.getLineMaterial(myMaterial);
-               props.put(param, myMaterial);
+               Material.Line m = materialMap.getLineMaterial(myMaterial);
+               props.put(param, m!=null? m : myMaterial);
 
        }
 
index 76bd57228271b0a3ca17ec693d991481874f6f5f..74a6679e1c756c4abfecb739ecf502cbf1d528e7 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;
@@ -32,9 +29,9 @@ public class MaterialColumnParser extends BaseColumnParser {
                        return;
                }
                
-               Material.Bulk m = new Material.Bulk(columnData, 0.0, true);
-               m = materialMap.getBulkMaterial(m);
-               props.put(param, m);
+               Material.Bulk tmpMaterial = new Material.Bulk(columnData, 0.0, true);
+               Material.Bulk m = materialMap.getBulkMaterial(tmpMaterial);
+               props.put(param, m!= null ? m : tmpMaterial);
                
        }
 
index 1e0f1ed2173cb42a70fb4d59ac9268661ae89615..52d5a9316e327189f3cb48ba408cbf29c0b6a0ae 100644 (file)
@@ -31,9 +31,22 @@ public class MaterialHolder {
                }
        }
 
+       public Material getMaterial ( Material material ) {
+               switch ( material.getType() ) {
+               case BULK:
+                       return getBulkMaterial( (Material.Bulk)material );
+               case SURFACE:
+                       return getSurfaceMaterial( (Material.Surface) material, null );
+               case LINE:
+                       return getLineMaterial( (Material.Line) material );
+               default:
+                       return null;
+               }
+       }
+
        public Material.Bulk getBulkMaterial( Material.Bulk material ) {
                Material.Bulk m = bulkMaterials.get( material.getName() );
-               return (m==null) ? material : m;
+               return m;
        }
 
        public Material.Surface getSurfaceMaterial( Material.Surface material, Double thickness ) {
@@ -44,7 +57,7 @@ public class MaterialHolder {
                // Try to see if we can convert a bulk material.
                if ( thickness == null ) {
                        // if we have no thickness, there is nothing we can do
-                       return material;
+                       return null;
                }
                String thicknessName = UnitGroup.UNITS_LENGTH.getUnit("mm").toString(thickness);
                String convertedMaterialName = material.getName() + "(" + thicknessName + ")";
@@ -55,7 +68,7 @@ public class MaterialHolder {
                Material.Bulk bulk = bulkMaterials.get(material.getName() );
 
                if ( bulk == null ) {
-                       return material;
+                       return null;
                }
 
                // Ok, now we have a thickness and a bulk material of the correct name,
@@ -71,7 +84,7 @@ public class MaterialHolder {
 
        public Material.Line getLineMaterial( Material.Line material ) {
                Material.Line m = lineMaterials.get( material.getName() );
-               return (m==null) ? material : m;
+               return m;
        }
 
        public int size() {
@@ -89,19 +102,19 @@ public class MaterialHolder {
 
        }
 
-    public Database<Material> asDatabase(Material.Type theType) {
-        Database<Material> result = new Database<Material>();
-        switch (theType) {
-            case LINE:
-                result.addAll(lineMaterials.values());
-                break;
-            case SURFACE:
-                result.addAll(surfaceMaterials.values());
-                break;
-            case BULK:
-            default:
-                result.addAll(bulkMaterials.values());
-        }
-        return result;
-    }
+       public Database<Material> asDatabase(Material.Type theType) {
+               Database<Material> result = new Database<Material>();
+               switch (theType) {
+               case LINE:
+                       result.addAll(lineMaterials.values());
+                       break;
+               case SURFACE:
+                       result.addAll(surfaceMaterials.values());
+                       break;
+               case BULK:
+               default:
+                       result.addAll(bulkMaterials.values());
+               }
+               return result;
+       }
 }
index ea132f98ee1ef80223fb4194662243d1b584dd60..4f53e40ee8e82cedf51a06a52345b68c7cc0a521 100644 (file)
@@ -42,10 +42,10 @@ public class ParachuteLoader extends BaseComponentLoader {
 
                // Fix the material since some files use bulk materials for streamers.
                Double thickness = props.get( ComponentPreset.THICKNESS );
-               Material.Surface material = (Material.Surface) props.get( ComponentPreset.MATERIAL );
+               Material.Surface myMaterial = (Material.Surface) props.get( ComponentPreset.MATERIAL );
 
-               material = materials.getSurfaceMaterial(material, thickness);
-               props.put(ComponentPreset.MATERIAL, material);
+               Material.Surface m = materials.getSurfaceMaterial(myMaterial, thickness);
+               props.put(ComponentPreset.MATERIAL, m!=null ? m : myMaterial);
        }
 
 }
index 652b2d42fc1e5339e4b31d02ce6ef7003a22b5cc..403ea0f6e28b980e0a59a28b10ef51be0070af3c 100644 (file)
@@ -49,11 +49,11 @@ public class StreamerLoader extends BaseComponentLoader {
 
                // Fix the material since some files use bulk materials for streamers.
                Double thickness = props.get( ComponentPreset.THICKNESS );
-               Material.Surface material = (Material.Surface) props.get( ComponentPreset.MATERIAL );
+               Material.Surface myMaterial = (Material.Surface) props.get( ComponentPreset.MATERIAL );
 
-               material = materials.getSurfaceMaterial(material, thickness);
+               Material.Surface m = materials.getSurfaceMaterial(myMaterial, thickness);
 
-               props.put(ComponentPreset.MATERIAL, material);
+               props.put(ComponentPreset.MATERIAL, m!=null? m : myMaterial);
        }
 
 }
index 2dad9f0a8ac829e386b1cc63823ab98451696f52..b761e9b2aebbede8f4b068402fdce3153ef6373c 100644 (file)
@@ -25,8 +25,8 @@ public class SurfaceMaterialColumnParser extends BaseColumnParser {
                }
                
                Material.Surface myMaterial = new Material.Surface(columnData, 0.0, true);
-               myMaterial = materialMap.getSurfaceMaterial(myMaterial, null);
-               props.put(param, myMaterial);
+               Material.Surface m = materialMap.getSurfaceMaterial(myMaterial, null);
+               props.put(param, m!=null ? m : myMaterial);
 
        }