package org.simantics.excel.poi.parser; import java.util.ArrayList; import java.util.List; import org.apache.poi.ss.usermodel.Row; public class CellStringArrayDataResolver extends CellDataResolverBase{ int index[]; boolean all = false; public CellStringArrayDataResolver(int... index) { this.index = index; } public CellStringArrayDataResolver(List index) { this.index = new int[index.size()]; for (int i = 0; i < index.size(); i++) { this.index[i] = index.get(i); } } /** * If resolver is parameterized with one index, return all values from all columns from the index. Default false. * @param all */ public CellStringArrayDataResolver setAll(boolean all) { this.all = all; return this; } @Override public String[] getValue(Row row) { if (row == null) return null; if (index.length > 1 || !all) { String data[] = new String[index.length]; for (int i = 0; i < data.length; i++) { data[i] = getCellStringValue(getCell(row, index[i])); } return data; } else { List data = new ArrayList(); int i = index[0]; while (true) { String value = getCellStringValue(getCell(row, i)); if (value != null && value.length() > 0) { data.add(value); i++; } else { break; } } return data.toArray(new String[data.size()]); } } }