package net.sf.openrocket.preset.loader; import java.util.HashMap; import java.util.Locale; import java.util.Map; import net.sf.openrocket.unit.Unit; import net.sf.openrocket.unit.UnitGroup; public abstract class BaseUnitColumnParser extends BaseColumnParser { protected String unitHeader; protected int unitIndex; protected boolean unitConfigured; protected static Map<String,Unit> rocksimUnits; static { rocksimUnits = new HashMap<String,Unit>(); rocksimUnits.put("0", UnitGroup.UNITS_LENGTH.getUnit("in")); rocksimUnits.put("1", UnitGroup.UNITS_LENGTH.getUnit("mm")); } protected String mungeUnitNameString( String name ) { String newString = name.toLowerCase(Locale.US); return newString.replace(".", ""); } public BaseUnitColumnParser(String columnHeader, String unitHeader) { super(columnHeader); this.unitHeader = unitHeader.toLowerCase(Locale.US); } @Override public void configure(String[] headers) { // super configure will set columnIndex; super.configure(headers); // This indicates the actual dimension column was found. if ( isConfigured ) { // Look for the unit column proceeding it for( int i=columnIndex-1; i>=0; i-- ) { if ( unitHeader.equals(headers[i].toLowerCase(Locale.US))) { unitConfigured = true; unitIndex = i; return; } } } } }