--- /dev/null
+package net.sf.openrocket.preset.loader;
+
+import java.util.Locale;
+
+import net.sf.openrocket.preset.TypedPropertyMap;
+
+
+public abstract class BaseColumnParser implements RocksimComponentFileColumnParser {
+
+ protected String columnHeader;
+ protected boolean isConfigured = false;
+ protected int columnIndex;
+
+ public BaseColumnParser(String columnHeader) {
+ super();
+ this.columnHeader = columnHeader.toLowerCase(Locale.US);
+ }
+
+ @Override
+ public void configure(String[] headers) {
+ if ( headers == null ) {
+ return;
+ }
+ for( int i =0; i< headers.length; i++ ) {
+ if ( columnHeader.equals(headers[i].toLowerCase(Locale.US))) {
+ columnIndex = i;
+ isConfigured = true;
+ return;
+ }
+ }
+ }
+
+ @Override
+ final public void parse(String[] data, TypedPropertyMap props) {
+ if ( isConfigured ) {
+ doParse(data[columnIndex], data, props);
+ }
+ }
+
+ protected abstract void doParse(String columnData, String[] data, TypedPropertyMap props );
+
+}