package fr.openwide.core.imports.table.opencsv.mapping.column.builder;
import com.google.common.base.Function;
import fr.openwide.core.commons.util.functional.SerializableFunction;
import fr.openwide.core.imports.table.common.event.ITableImportEventHandler;
import fr.openwide.core.imports.table.common.location.ITableImportNavigator;
import fr.openwide.core.imports.table.common.mapping.column.builder.ITableImportColumnMapper;
import fr.openwide.core.imports.table.opencsv.model.CsvCell;
import fr.openwide.core.imports.table.opencsv.model.CsvCellReference;
import fr.openwide.core.imports.table.opencsv.model.CsvRow;
import fr.openwide.core.imports.table.opencsv.model.CsvTable;
/*package*/ class StaticIndexOpenCsvImportColumnMapper implements ITableImportColumnMapper<CsvTable, CsvRow, CsvCell, CsvCellReference> {
private final int columnIndex;
public StaticIndexOpenCsvImportColumnMapper(int columnIndex) {
super();
this.columnIndex = columnIndex;
}
@Override
public Function<? super CsvRow, CsvCellReference> tryMap(CsvTable sheet, ITableImportNavigator<CsvTable, CsvRow, CsvCell, CsvCellReference> navigator,
ITableImportEventHandler eventHandler) {
return new SerializableFunction<CsvRow, CsvCellReference>() {
private static final long serialVersionUID = 1L;
@Override
public CsvCellReference apply(CsvRow row) {
return row == null ? null : new CsvCellReference(row.getIndex(), columnIndex);
}
};
}
}