1 package net.sumaris.importation.dao; 2 3 /*- 4 * #%L 5 * SUMARiS:: Core Importation 6 * %% 7 * Copyright (C) 2018 - 2019 SUMARiS Consortium 8 * %% 9 * This program is free software: you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as 11 * published by the Free Software Foundation, either version 3 of the 12 * License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public 20 * License along with this program. If not, see 21 * <http://www.gnu.org/licenses/gpl-3.0.html>. 22 * #L% 23 */ 24 25 import net.sumaris.core.dao.technical.schema.DatabaseTableEnum; 26 import net.sumaris.importation.util.csv.FileReader; 27 import net.sumaris.importation.service.vo.DataLoadError; 28 29 30 import java.io.IOException; 31 32 /** 33 * @author benoit.lavenier@e-is.pro 34 * 35 * DAO in charge of data import 36 * 37 */ 38 public interface DataLoaderDao { 39 40 41 /** 42 * Validate a file 43 * @param fileReader the file reader 44 * @param table the table to load 45 * @return 46 * @throws IOException 47 */ 48 DataLoadError[] validate(FileReader fileReader, DatabaseTableEnum table) throws IOException; 49 50 /** 51 * Import a file into the database 52 * 53 * @param fileReader 54 * the file reader 55 * @param table the table to load 56 * @return 57 * @throws IOException 58 */ 59 DataLoadError[] load(FileReader fileReader, DatabaseTableEnum table) throws IOException; 60 61 /** 62 * Remove a file table 63 * @param userId 64 * @param table 65 * @param country The country to remove in data (optional: null=all data) 66 * @return number of lines removed 67 */ 68 int removeData(DatabaseTableEnum table, String[] filteredColumns, Object[] filteredValues); 69 70 }