2010-04-01 00:34:21 +02:00
|
|
|
package com.metaweb.gridworks.importers.parsers;
|
|
|
|
|
|
|
|
import java.io.Serializable;
|
2010-04-11 05:42:44 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
2010-04-01 00:34:21 +02:00
|
|
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
|
|
|
|
import com.metaweb.gridworks.expr.ExpressionUtils;
|
|
|
|
import com.metaweb.gridworks.importers.ImporterUtilities;
|
|
|
|
import com.metaweb.gridworks.model.Cell;
|
|
|
|
import com.metaweb.gridworks.model.Row;
|
|
|
|
|
|
|
|
public class SeparatorRowParser extends RowParser {
|
|
|
|
|
|
|
|
String sep;
|
|
|
|
|
|
|
|
public SeparatorRowParser(String sep) {
|
|
|
|
this.sep = sep;
|
|
|
|
}
|
|
|
|
|
2010-04-11 05:42:44 +02:00
|
|
|
public List<String> split(String line) {
|
|
|
|
String[] cells = StringUtils.splitPreserveAllTokens(line, sep);
|
|
|
|
|
|
|
|
List<String> results = new ArrayList<String>();
|
|
|
|
for (int c = 0; c < cells.length; c++) {
|
|
|
|
results.add(cells[c]);
|
|
|
|
}
|
|
|
|
|
|
|
|
return results;
|
|
|
|
}
|
|
|
|
|
2010-04-01 00:34:21 +02:00
|
|
|
public boolean parseRow(Row row, String line) {
|
|
|
|
boolean hasData = false;
|
|
|
|
|
|
|
|
String[] cells = StringUtils.splitPreserveAllTokens(line, sep);
|
|
|
|
for (int c = 0; c < cells.length; c++) {
|
|
|
|
String text = cells[c];
|
|
|
|
|
|
|
|
Serializable value = ImporterUtilities.parseCellValue(text);
|
|
|
|
if (ExpressionUtils.isNonBlankData(value)) {
|
|
|
|
row.cells.add(new Cell(value, null));
|
|
|
|
hasData = true;
|
|
|
|
} else {
|
|
|
|
row.cells.add(null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return hasData;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|