create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / BaseUnitColumnParser.java
1 package net.sf.openrocket.preset.loader;
2
3 import java.util.HashMap;
4 import java.util.Locale;
5 import java.util.Map;
6
7 import net.sf.openrocket.unit.Unit;
8 import net.sf.openrocket.unit.UnitGroup;
9
10
11 public abstract class BaseUnitColumnParser extends BaseColumnParser {
12
13         protected String unitHeader;
14         protected int unitIndex;
15         protected boolean unitConfigured;
16         
17         protected static Map<String,Unit> rocksimUnits;
18         
19         static {
20                 rocksimUnits = new HashMap<String,Unit>();
21                 rocksimUnits.put("0", UnitGroup.UNITS_LENGTH.getUnit("in"));
22                 rocksimUnits.put("1", UnitGroup.UNITS_LENGTH.getUnit("mm"));
23         }
24
25         protected String mungeUnitNameString( String name ) {
26                 String newString = name.toLowerCase(Locale.US);
27                 return newString.replace(".", "");
28         }
29         
30         public BaseUnitColumnParser(String columnHeader, String unitHeader) {
31                 super(columnHeader);
32                 this.unitHeader = unitHeader.toLowerCase(Locale.US);
33         }
34
35         @Override
36         public void configure(String[] headers) {
37                 // super configure will set columnIndex;
38                 super.configure(headers);
39                 
40                 // This indicates the actual dimension column was found.
41                 if ( isConfigured ) {
42                         // Look for the unit column proceeding it
43                         for( int i=columnIndex-1; i>=0; i-- ) {
44                                 if ( unitHeader.equals(headers[i].toLowerCase(Locale.US))) {
45                                         unitConfigured = true;
46                                         unitIndex = i;
47                                         return;
48                                 }
49                         }
50                 }
51         }
52
53 }