This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit dc315eae9731d9b4ba0640a47f9f84437704c4f4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Feb 11 17:22:03 2015 +0100 introduce CsvConsumer --- .../fr/ifremer/tutti/service/csv/CsvComsumer.java | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java new file mode 100644 index 0000000..d23d5e0 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CsvComsumer.java @@ -0,0 +1,54 @@ +package fr.ifremer.tutti.service.csv; + +import com.google.common.base.Charsets; +import com.google.common.io.Files; +import org.apache.commons.io.IOUtils; +import org.nuiton.csv.Import2; +import org.nuiton.csv.ImportRow; +import org.nuiton.jaxx.application.ApplicationTechnicalException; + +import java.io.BufferedReader; +import java.io.Closeable; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.file.Path; +import java.util.Iterator; + +/** + * Created on 2/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14 + */ +public class CsvComsumer<O, M extends AbstractTuttiImportExportModel<O>> implements Closeable, Iterable<ImportRow<O>> { + + private final BufferedReader reader; + + private final Import2<O> importer; + + public CsvComsumer(Path file, M model) { + + try { + this.reader = Files.newReader(file.toFile(), Charsets.UTF_8); + } catch (FileNotFoundException e) { + // should never happen + throw new ApplicationTechnicalException("file not found " + file, e); + } + + this.importer = Import2.newImport(model, reader); + + } + + @Override + public Iterator<ImportRow<O>> iterator() { + Iterator<ImportRow<O>> iterator = this.importer.iterator(); + return iterator; + } + + @Override + public void close() throws IOException { + IOUtils.closeQuietly(reader); + IOUtils.closeQuietly(importer); + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.