Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / SurfaceMaterialColumnParser.java
diff --git a/core/src/net/sf/openrocket/preset/loader/SurfaceMaterialColumnParser.java b/core/src/net/sf/openrocket/preset/loader/SurfaceMaterialColumnParser.java
new file mode 100644 (file)
index 0000000..703d128
--- /dev/null
@@ -0,0 +1,34 @@
+package net.sf.openrocket.preset.loader;
+
+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 SurfaceMaterialColumnParser extends BaseColumnParser {
+       
+       private final MaterialHolder materialMap;
+       
+       private final TypedKey<Material> param;
+       
+       public SurfaceMaterialColumnParser(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())) {
+                       return;
+               }
+               
+               Material.Surface myMaterial = (Material.Surface) Databases.findMaterial(Material.Type.SURFACE, columnData, 0.0);
+               Material.Surface m = materialMap.getSurfaceMaterial(myMaterial, null);
+               props.put(param, m != null ? m : myMaterial);
+               
+       }
+       
+}