1 package fr.ifremer.quadrige3.synchro.dao; 2 3 /*- 4 * #%L 5 * Quadrige3 Core :: Quadrige3 Client Core 6 * $Id:$ 7 * $HeadURL:$ 8 * %% 9 * Copyright (C) 2017 Ifremer 10 * %% 11 * This program is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Affero General Public License as published by 13 * the Free Software Foundation, either version 3 of the License, or 14 * (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU Affero General Public License 22 * along with this program. If not, see <http://www.gnu.org/licenses/>. 23 * #L% 24 */ 25 26 import com.google.common.collect.Multimap; 27 28 import java.util.Properties; 29 import java.util.Set; 30 31 /** 32 * Created by blavenie on 20/08/15. 33 */ 34 public interface SynchroClientDao { 35 36 /** 37 * Say if all table are empty or not, using a 'SELECT COUNT(*) FROM'. 38 * 39 * @param tableNames 40 * a list of tables to read 41 * @return a boolean. 42 */ 43 boolean isAllTablesEmpty(Set<String> tableNames); 44 45 /** 46 * Say if all table are empty or not, using a 'SELECT COUNT(*) FROM'. 47 * 48 * @param connectionProperties 49 * if null or equals to default connection (see QuadrigeConfiguration.getConnectionProperties), wille 50 * use the default datasource connection 51 * @param tableNames 52 * a list of tables to read 53 * @return a boolean. 54 */ 55 boolean isAllTablesEmpty(Properties connectionProperties, Set<String> tableNames); 56 57 /** 58 * <p> 59 * getExportedKeys. 60 * </p> 61 * 62 * @param pkTableName 63 * a {@link java.lang.String} object. 64 * @param pkColumnName 65 * a {@link java.lang.String} object. 66 * @return a {@link com.google.common.collect.Multimap} object. 67 */ 68 Multimap<String, String> getExportedKeys(String pkTableName, String pkColumnName); 69 70 }