From: kruland2607 Date: Fri, 27 Apr 2012 19:06:54 +0000 (+0000) Subject: Added special processing for rocksim csv component files when the mass is specified... X-Git-Tag: upstream/12.09^2~312 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=a58d57a7d1b93913386f1e25a7265260b8abbd73;p=debian%2Fopenrocket Added special processing for rocksim csv component files when the mass is specified as 0. In this case, we "reject" the mass and assume it is to be computed based on density. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@627 180e2498-e6e9-4542-8430-84ac67f01cd8 --- diff --git a/core/src/net/sf/openrocket/preset/loader/BaseComponentLoader.java b/core/src/net/sf/openrocket/preset/loader/BaseComponentLoader.java index 6f397094..12a9404f 100644 --- a/core/src/net/sf/openrocket/preset/loader/BaseComponentLoader.java +++ b/core/src/net/sf/openrocket/preset/loader/BaseComponentLoader.java @@ -22,7 +22,7 @@ public abstract class BaseComponentLoader extends RocksimComponentFileLoader { fileColumns.add( new StringColumnParser("Part No.", ComponentPreset.PARTNO)); fileColumns.add( new StringColumnParser("Desc.", ComponentPreset.DESCRIPTION)); fileColumns.add(new MaterialColumnParser(materials)); - fileColumns.add(new DoubleUnitColumnParser("Mass","Mass units",ComponentPreset.MASS)); + fileColumns.add(new MassColumnParser("Mass","Mass units")); } 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 index 00000000..611eabfb --- /dev/null +++ b/core/src/net/sf/openrocket/preset/loader/MassColumnParser.java @@ -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())) { + return; + } + double d = Double.valueOf(columnData); + if ( d == 0.0 ) { + return; + } + super.doParse(columnData, data, props); + } + +}