package org.aksw.sparqlify.csv; import java.io.File; import java.io.IOException; import java.io.Reader; import java.nio.charset.Charset; import com.google.common.io.Files; import com.google.common.io.InputSupplier; import au.com.bytecode.opencsv.CSVParser; import au.com.bytecode.opencsv.CSVReader; public class InputSupplierCSVReader implements InputSupplier<CSVReader> { private CsvParserConfig config; private InputSupplier<? extends Reader> readerSupplier; public InputSupplierCSVReader(File file, CsvParserConfig config) { this(Files.newReaderSupplier(file, Charset.defaultCharset()), config); } public InputSupplierCSVReader(InputSupplier<? extends Reader> readerSupplier, CsvParserConfig config) { this.readerSupplier = readerSupplier; this.config = config; } @Override public CSVReader getInput() throws IOException { char fieldSep = config.getFieldSeparator() == null ? CSVParser.DEFAULT_SEPARATOR : config.getFieldSeparator(); char quoteChar = config.getFieldDelimiter() == null ? CSVParser.DEFAULT_QUOTE_CHARACTER : config.getFieldDelimiter(); char escapeChar = config.getEscapeCharacter() == null ? CSVParser.DEFAULT_ESCAPE_CHARACTER : config.getEscapeCharacter(); Reader reader = readerSupplier.getInput(); CSVReader result = new CSVReader(reader, fieldSep, quoteChar, escapeChar, 0, false); return result; } }