1 package fr.ifremer.quadrige3.synchro.meta.referential;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import com.google.common.collect.ImmutableSet;
27 import com.google.common.collect.Sets;
28 import fr.ifremer.quadrige3.core.config.QuadrigeConfiguration;
29 import org.apache.commons.collections4.CollectionUtils;
30
31 import java.util.Set;
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 public enum ReferentialSynchroTables {
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 STATUS,
74 DEPARTMENT,
75 POSITIONNING_TYPE,
76 POSITIONNING_SYSTEM,
77 QUSER,
78 UNIT,
79 AGE_GROUP,
80 DREDGING_AREA_TYPE,
81 DREDGING_TARGET_AREA,
82 PLOIDY,
83 PROJECTION_SYSTEM,
84 COORDINATES_TRANSFORMATION,
85 QUALITY_FLAG,
86 BREEDING_STRUCTURE,
87 BREEDING_SYSTEM,
88 BREEDING_PHASE_TYPE,
89 DEPTH_LEVEL,
90 FILTER_TYPE,
91 FILTER_CRITERIA_TYPE,
92 FILTER_OPERATOR_TYPE,
93 SAMPLING_EQUIPMENT,
94 ANALYSIS_INSTRUMENT,
95
96 COMPLIANT_OS,
97 DOCUMENT_TYPE,
98 FUNCTION,
99 FUNCTION_PARAMETER,
100 NUMERICAL_PRECISION,
101
102 OBSERVATION_TYPOLOGY,
103
104 PHOTO_TYPE,
105 SHIP,
106
107
108 HARBOUR,
109 MONITORING_LOCATION,
110 ORDER_ITEM_TYPE,
111 ORDER_ITEM,
112
113 MON_LOC_ORDER_ITEM,
114 MON_LOC_POINT,
115 MON_LOC_LINE,
116 MON_LOC_AREA,
117
118
119 REFERENCE_TAXON,
120 TAXONOMIC_LEVEL,
121 TAXON_GROUP_TYPE,
122 TAXON_GROUP,
123 CITATION,
124 TAXON_NAME,
125 TAXON_NAME_HISTORY,
126 TAXON_GROUP_HISTORICAL_RECORD,
127 TAXON_GROUP_INFORMATION,
128 RESOURCE_TYPE,
129 TAXON_GROUP_POSITION,
130 TAXON_INFORMATION,
131 TAXON_INFORMATION_HISTORY,
132 TAXON_POSITION,
133
134
135 VIRTUAL_COMPONENT,
136 REFERENCE_DOCUMENT,
137 AUTHOR,
138 AUTHOR_REF_DOC,
139
140
141 FRACTION,
142 MATRIX,
143 FRACTION_MATRIX,
144 METHOD,
145 PARAMETER_GROUP,
146 PARAMETER,
147
148
149
150 QUALITATIVE_VALUE,
151
152 PMFM,
153
154 PMFM_QUAL_VALUE,
155
156
157 PROGRAMME,
158 MON_LOC_PROG,
159 STRATEGY,
160 FREQUENCY,
161 APPLIED_STRATEGY,
162 APPLIED_PERIOD,
163 PRECISION_TYPE,
164 PMFM_STRATEGY,
165 PMFM_STRAT_PMFM_QUAL_VALUE,
166 PMFM_APPLIED_STRATEGY,
167 ACQUISITION_LEVEL,
168 PMFM_STRAT_ACQUIS_LEVEL,
169 UI_FUNCTION,
170 PMFM_STRAT_UI_FUNCTION,
171 RESP_QUSER_STRAT,
172 RESP_DEP_STRAT,
173
174
175 PRIVILEGE,
176 PRIVILEGE_TRANSFER,
177 QUSER_PRIVILEGE,
178 DEPARTMENT_PRIVILEGE,
179 PROGRAMME_PRIVILEGE,
180 PROG_DEP_PROG_PRIV,
181 PROG_QUSER_PROG_PRIV,
182
183
184 MORATORIUM,
185 MOR_MON_LOC_PROG,
186 MOR_PERIOD,
187 PMFM_MOR,
188 MOR_CAMP,
189 MOR_OCCAS,
190
191
192 CAMPAIGN,
193 CAMPAIGN_PROG,
194 CAMPAIGN_AREA,
195 CAMPAIGN_LINE,
196 CAMPAIGN_POINT,
197
198
199 OCCASION,
200 OCCAS_QUSER,
201 OCCAS_AREA,
202 OCCAS_LINE,
203 OCCAS_POINT,
204
205
206 EVENT_TYPE,
207 EVENT,
208 EVENT_AREA,
209 EVENT_LINE,
210 EVENT_POINT,
211
212
213 OBJECT_TYPE,
214 TRANSCRIBING_SIDE,
215 TRANSCRIBING_ITEM_TYPE,
216 TRANSCRIBING_ITEM,
217
218
219 DELETED_ITEM_HISTORY,
220 UPDATED_ITEM_HISTORY,
221
222
223 EXTRACT_TABLE_TYPE,
224 EXTRACT_FILE_TYPE,
225 EXTRACT_GROUP_TYPE_PMFM;
226
227
228 private static Set<String> tableNames = null;
229
230
231
232
233
234
235
236
237 public static Set<String> tableNames() {
238 if (tableNames != null) {
239 return tableNames;
240 }
241
242 tableNames = Sets.newLinkedHashSet();
243 for (ReferentialSynchroTables value : values()) {
244 tableNames.add(value.name());
245 }
246
247 tableNames = ImmutableSet.copyOf(tableNames);
248 return tableNames;
249 }
250
251
252
253
254
255
256
257 public static Set<String> getImportTablesIncludes() {
258 Set<String> tableNames = QuadrigeConfiguration.getInstance().getImportReferentialTablesIncludes();
259 if (CollectionUtils.isNotEmpty(tableNames)) {
260 return tableNames;
261 }
262
263 return tableNames();
264 }
265
266 }