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 );
}