Java tutorial
/* * * * * * * * * * ~ * * * ~ The MIT License (MIT) * * * ~ * * * ~ Copyright (c) 2010-2017 QAMatic Team * * * ~ * * * ~ Permission is hereby granted, free of charge, to any person obtaining a copy * * * ~ of this software and associated documentation files (the "Software"), to deal * * * ~ in the Software without restriction, including without limitation the rights * * * ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * * * ~ copies of the Software, and to permit persons to whom the Software is * * * ~ furnished to do so, subject to the following conditions: * * * ~ * * * ~ The above copyright notice and this permission notice shall be included in all * * * ~ copies or substantial portions of the Software. * * * ~ * * * ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * * * ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * * * ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * * * ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * * * ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * * * ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * * * ~ SOFTWARE. * * * ~ * * * ~ * * * * * * * * * / */ package org.qamatic.mintleaf.readers; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; import org.qamatic.mintleaf.MintleafException; import org.qamatic.mintleaf.MintleafReader; import org.qamatic.mintleaf.Row; import org.qamatic.mintleaf.core.BaseReader; import java.io.IOException; import java.io.Reader; /** * Created by qamatic on 2/18/6/16. */ public class CsvReader<T> extends BaseReader implements MintleafReader<T> { private Reader afileReader; public CsvReader(Reader afileReader) { this.afileReader = afileReader; } protected CSVParser getCSVParser() throws IOException { return new CSVParser(afileReader, CSVFormat.EXCEL.withHeader().withIgnoreEmptyLines()); } @Override public T read() throws MintleafException { final CSVParser parser; try { parser = getCSVParser(); int i = 0; for (CSVRecord record : parser) { Row row = createRowInstance(record); if (!readRow(i++, row)) { break; } } } catch (IOException e) { throw new MintleafException(e); } return null; } public Row createRowInstance(CSVRecord record) { return new CsvRowWrapper(record); } }