Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / MassColumnParser.java
diff --git a/core/src/net/sf/openrocket/preset/loader/MassColumnParser.java b/core/src/net/sf/openrocket/preset/loader/MassColumnParser.java
new file mode 100644 (file)
index 0000000..ce382ec
--- /dev/null
@@ -0,0 +1,30 @@
+package net.sf.openrocket.preset.loader;
+
+import net.sf.openrocket.preset.ComponentPreset;
+import net.sf.openrocket.preset.TypedPropertyMap;
+
+/**
+ * Special DoubleUnitColumnParser for Mass column.  Here we assume that if a mass of 0 is
+ * specified in the csv, then we should not put a mass explicitly in the preset but instead
+ * rely on the density to compute a mass value.
+ *
+ */
+public class MassColumnParser extends DoubleUnitColumnParser {
+
+       public MassColumnParser(String columnHeader, String unitHeader) {
+               super(columnHeader, unitHeader, ComponentPreset.MASS);
+       }
+
+       @Override
+       protected void doParse(String columnData, String[] data, TypedPropertyMap props) {
+               if ( columnData == null || "".equals(columnData.trim()) || "?".equals(columnData.trim())) {
+                       return;
+               }
+               double d = Double.valueOf(columnData);
+               if ( d == 0.0 ) {
+                       return;
+               }
+               super.doParse(columnData, data, props);
+       }
+
+}