in taverna-spreadsheet-import-activity/src/main/java/org/apache/taverna/activities/spreadsheet/CSVSpreadsheetReader.java [37:76]
public void read(InputStream inputStream, Range rowRange,
Range columnRange, boolean ignoreBlankRows,
SpreadsheetRowProcessor rowProcessor)
throws SpreadsheetReadException {
CsvReader csvReader = new CsvReader(new InputStreamReader(inputStream));
csvReader.setSkipEmptyRecords(false);
SortedMap<Integer, String> currentDataRow = new TreeMap<Integer, String>();
try {
while(csvReader.readRecord()) {
int rowIndex = (int) csvReader.getCurrentRecord();
boolean blankRow = true;
if (rowRange.contains(rowIndex)) {
for (int columnIndex = columnRange.getStart(); columnIndex <= columnRange.getEnd(); columnIndex++) {
if (columnRange.contains(columnIndex)) {
String value = csvReader.get(columnIndex);
value = "".equals(value) ? null : value;
if (value != null) {
blankRow = false;
}
currentDataRow.put(columnIndex, value);
if (columnIndex == columnRange.getEnd()) {
if (!ignoreBlankRows || !blankRow) {
rowProcessor.processRow(rowIndex, currentDataRow);
}
currentDataRow = new TreeMap<Integer, String>();
}
}
}
if (rowIndex == rowRange.getEnd()) {
break;
}
}
}
} catch (IOException e) {
throw new SpreadsheetReadException("Unable to read CSV file", e);
}
}