create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / preset / loader / BaseColumnParser.java
1 package net.sf.openrocket.preset.loader;
2
3 import java.util.Locale;
4
5 import net.sf.openrocket.preset.TypedPropertyMap;
6
7
8 public abstract class BaseColumnParser implements RocksimComponentFileColumnParser {
9
10         protected String columnHeader;
11         protected boolean isConfigured = false;
12         protected int columnIndex;
13
14         public BaseColumnParser(String columnHeader) {
15                 super();
16                 this.columnHeader = columnHeader.toLowerCase(Locale.US);
17         }
18
19         @Override
20         public void configure(String[] headers) {
21                 if ( headers == null ) {
22                         return;
23                 }
24                 for( int i =0; i< headers.length; i++ ) {
25                         if ( columnHeader.equals(headers[i].toLowerCase(Locale.US))) {
26                                 columnIndex = i;
27                                 isConfigured = true;
28                                 return;
29                         }
30                 }
31         }
32
33         @Override
34         final public void parse(String[] data, TypedPropertyMap props) {
35                 if ( isConfigured ) {
36                         doParse(data[columnIndex], data, props);
37                 }
38         }
39         
40         protected abstract void doParse(String columnData, String[] data, TypedPropertyMap props );
41         
42 }