1 package fr.ifremer.quadrige2.synchro.meta.referential; 2 3 /*- 4 * #%L 5 * Quadrige2 Core :: Quadrige2 Synchro 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.ImmutableSet; 27 import com.google.common.collect.Sets; 28 29 import java.util.LinkedHashSet; 30 import java.util.Set; 31 32 /** 33 * Campaign and Occasion tables, to synchronize (e.g. when a local administrator export into a file) 34 * 35 * @author Benoit Lavenier <benoit.lavenier@e-is.pro> 36 * @since 1.0 37 */ 38 public enum CampaignOccasionSynchroTables { 39 40 /* CAMPAIGN */ 41 CAMPAIGN, 42 CAMPAIGN_PROG, 43 CAMPAIGN_AREA, 44 CAMPAIGN_LINE, 45 CAMPAIGN_POINT, 46 47 /* OCCASION */ 48 OCCASION, 49 OCCAS_QUSER, 50 OCCAS_AREA, 51 OCCAS_LINE, 52 OCCAS_POINT; 53 54 /** Constant <code>tableNames</code> */ 55 private static Set<String> tableNames = null; 56 57 /** 58 * <p> 59 * tableNames. 60 * </p> 61 * 62 * @return a {@link java.util.Set} object. 63 */ 64 public static Set<String> tableNames() { 65 if (tableNames != null) { 66 return tableNames; 67 } 68 69 tableNames = Sets.newLinkedHashSet(); 70 for (CampaignOccasionSynchroTables value : values()) { 71 tableNames.add(value.name()); 72 } 73 74 tableNames = ImmutableSet.copyOf(tableNames); 75 return tableNames; 76 } 77 }