Revision 892efc69
Added by Andreas Kohlbecker almost 14 years ago
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiAdditionalTaxonSourceExport.java | ||
---|---|---|
91 | 91 |
// PESI: Clear the database table Note. |
92 | 92 |
doDelete(state); |
93 | 93 |
|
94 |
// CDM: Get the number of all available description elements. |
|
95 |
// int maxCount = getDescriptionService().count(null); |
|
96 |
// logger.error("Total amount of " + maxCount + " " + pluralString + " will be exported."); |
|
97 |
|
|
94 | 98 |
// Get specific mappings: (CDM) DescriptionElement -> (PESI) Note |
95 | 99 |
PesiExportMapping mapping = getMapping(); |
96 | 100 |
|
... | ... | |
114 | 118 |
|
115 | 119 |
logger.error("Looking for " + pluralString + " to export:"); |
116 | 120 |
logger.error("PHASE 1: Check for SourceUse 'NomenclaturalReference'"); |
117 |
setSourceUse_NomenclaturalReference(true);
|
|
121 |
sourceUse_NomenclaturalReference = true;
|
|
118 | 122 |
for (TaxonBase taxonBase : list) { |
119 | 123 |
// Set the current Taxon |
120 |
setCurrentTaxon(taxonBase);
|
|
124 |
currentTaxon = taxonBase;
|
|
121 | 125 |
|
122 | 126 |
ReferenceBase<?> nomenclaturalReference = (ReferenceBase)taxonBase.getName().getNomenclaturalReference(); |
123 |
if (nomenclaturalReference != null) { |
|
127 |
if (nomenclaturalReference != null && state.getDbId(nomenclaturalReference) != null) {
|
|
124 | 128 |
doCount(count++, modCount, pluralString); |
125 | 129 |
success &= mapping.invoke(nomenclaturalReference); |
126 | 130 |
} |
127 | 131 |
} |
128 |
setSourceUse_NomenclaturalReference(false);
|
|
132 |
sourceUse_NomenclaturalReference = false;
|
|
129 | 133 |
logger.error("Exported " + (count - pastCount) + " " + pluralString + "."); |
130 | 134 |
|
131 | 135 |
logger.error("PHASE 2: Check for SourceUse 'Additional Source'"); |
132 |
setSourceUse_AdditionalSource(true);
|
|
136 |
sourceUse_AdditionalSource = true;
|
|
133 | 137 |
for (TaxonBase taxonBase : list) { |
134 | 138 |
// Set the current Taxon |
135 |
setCurrentTaxon(taxonBase);
|
|
139 |
currentTaxon = taxonBase;
|
|
136 | 140 |
|
137 | 141 |
if (taxonBase.isInstanceOf(Taxon.class)) { |
138 | 142 |
|
... | ... | |
149 | 153 |
|
150 | 154 |
for (DescriptionElementSource elementSource : elementSources) { |
151 | 155 |
|
152 |
// Set the CitationMicroReference for later use in getSourceDetail()
|
|
156 |
// Set the CitationMicroReference so it is accessible later in getSourceDetail()
|
|
153 | 157 |
setCitationMicroReference(elementSource.getCitationMicroReference()); |
154 | 158 |
|
155 | 159 |
// Get the citation |
156 | 160 |
ReferenceBase reference = elementSource.getCitation(); |
157 | 161 |
|
158 | 162 |
// Citations can be empty (null): Is it wrong data or just a normal case? |
159 |
if (reference != null) { |
|
163 |
if (reference != null && state.getDbId(reference) != null) {
|
|
160 | 164 |
doCount(count++, modCount, pluralString); |
161 | 165 |
success &= mapping.invoke(reference); |
162 | 166 |
} |
... | ... | |
165 | 169 |
} |
166 | 170 |
} |
167 | 171 |
} |
168 |
setSourceUse_AdditionalSource(false);
|
|
172 |
sourceUse_AdditionalSource = false;
|
|
169 | 173 |
logger.error("Exported " + (count - pastCount) + " " + pluralString + "."); |
170 | 174 |
|
171 | 175 |
logger.error("PHASE 3: Check for SourceUse 'Source of Synonymy'"); |
172 | 176 |
ReferenceBase reference = null; |
173 |
setSourceUse_SourceOfSynonymy(true);
|
|
177 |
sourceUse_SourceOfSynonymy = true;
|
|
174 | 178 |
for (TaxonBase taxonBase : list) { |
175 | 179 |
if (taxonBase.isInstanceOf(Synonym.class)) { |
176 | 180 |
Synonym synonym = CdmBase.deproxy(taxonBase, Synonym.class); |
177 | 181 |
Set<SynonymRelationship> synonymRelations = synonym.getSynonymRelations(); |
178 | 182 |
for (SynonymRelationship relation : synonymRelations) { |
179 | 183 |
|
180 |
// Set the current Taxon |
|
181 |
setCurrentTaxon(relation.getAcceptedTaxon()); |
|
184 |
currentTaxon = relation.getAcceptedTaxon(); |
|
182 | 185 |
reference = relation.getCitation(); |
183 | 186 |
|
184 | 187 |
// Citations can be empty (null): Is it wrong data or just a normal case? |
185 |
if (reference != null) { |
|
188 |
if (reference != null && state.getDbId(reference) != null) {
|
|
186 | 189 |
doCount(count++, modCount, pluralString); |
187 | 190 |
success &= mapping.invoke(reference); |
188 | 191 |
} |
189 | 192 |
} |
190 | 193 |
} |
191 | 194 |
} |
192 |
setSourceUse_SourceOfSynonymy(false);
|
|
195 |
sourceUse_SourceOfSynonymy = false;
|
|
193 | 196 |
|
194 | 197 |
// Commit transaction |
195 | 198 |
commitTransaction(txStatus); |
... | ... | |
218 | 221 |
} |
219 | 222 |
} |
220 | 223 |
|
221 |
/** |
|
222 |
* @return the sourceUse_AdditionalSource |
|
223 |
*/ |
|
224 |
public static boolean isSourceUse_AdditionalSource() { |
|
225 |
return sourceUse_AdditionalSource; |
|
226 |
} |
|
227 |
|
|
228 |
/** |
|
229 |
* @param sourceUseAdditionalSource the sourceUse_AdditionalSource to set |
|
230 |
*/ |
|
231 |
public static void setSourceUse_AdditionalSource( |
|
232 |
boolean sourceUseAdditionalSource) { |
|
233 |
sourceUse_AdditionalSource = sourceUseAdditionalSource; |
|
234 |
} |
|
235 |
|
|
236 |
/** |
|
237 |
* @return the sourceUse_NomenclaturalReference |
|
238 |
*/ |
|
239 |
public static boolean isSourceUse_NomenclaturalReference() { |
|
240 |
return sourceUse_NomenclaturalReference; |
|
241 |
} |
|
242 |
|
|
243 |
/** |
|
244 |
* @param sourceUseNomenclaturalReference the sourceUse_NomenclaturalReference to set |
|
245 |
*/ |
|
246 |
public static void setSourceUse_NomenclaturalReference( |
|
247 |
boolean sourceUseNomenclaturalReference) { |
|
248 |
sourceUse_NomenclaturalReference = sourceUseNomenclaturalReference; |
|
249 |
} |
|
250 |
|
|
251 |
/** |
|
252 |
* @return the sourceUse_SourceOfSynonymy |
|
253 |
*/ |
|
254 |
public static boolean isSourceUse_SourceOfSynonymy() { |
|
255 |
return sourceUse_SourceOfSynonymy; |
|
256 |
} |
|
257 |
|
|
258 |
/** |
|
259 |
* @param sourceUseSourceOfSynonymy the sourceUse_SourceOfSynonymy to set |
|
260 |
*/ |
|
261 |
public static void setSourceUse_SourceOfSynonymy( |
|
262 |
boolean sourceUseSourceOfSynonymy) { |
|
263 |
sourceUse_SourceOfSynonymy = sourceUseSourceOfSynonymy; |
|
264 |
} |
|
265 |
|
|
266 |
/** |
|
267 |
* @return the currentTaxon |
|
268 |
*/ |
|
269 |
public static TaxonBase getCurrentTaxon() { |
|
270 |
return currentTaxon; |
|
271 |
} |
|
272 |
|
|
273 |
/** |
|
274 |
* @param currentTaxon the currentTaxon to set |
|
275 |
*/ |
|
276 |
public static void setCurrentTaxon(TaxonBase currentTaxon) { |
|
277 |
PesiAdditionalTaxonSourceExport.currentTaxon = currentTaxon; |
|
278 |
} |
|
279 |
|
|
280 | 224 |
/** |
281 | 225 |
* Deletes all entries of database tables related to <code>AdditionalTaxonSource</code>. |
282 | 226 |
* @param state The {@link PesiExportState PesiExportState}. |
... | ... | |
307 | 251 |
|
308 | 252 |
/** |
309 | 253 |
* Returns the <code>TaxonFk</code> attribute. |
310 |
* @param reference The {@link ReferenceBase reference}.
|
|
254 |
* @param description The {@link DescriptionBase Description}.
|
|
311 | 255 |
* @return The <code>TaxonFk</code> attribute. |
312 | 256 |
* @see MethodMapper |
313 | 257 |
*/ |
... | ... | |
316 | 260 |
// ReferenceBase parameter isn't needed, but the DbSingleAttributeExportMapperBase throws a type mismatch exception otherwise |
317 | 261 |
// since it awaits two parameters if one of them is of instance DbExportStateBase. |
318 | 262 |
Integer result = null; |
319 |
if (state != null && getCurrentTaxon() != null) {
|
|
320 |
result = state.getDbId(getCurrentTaxon());
|
|
263 |
if (state != null && currentTaxon != null) {
|
|
264 |
result = state.getDbId(currentTaxon.getName());
|
|
321 | 265 |
} |
322 | 266 |
return result; |
323 | 267 |
} |
324 | 268 |
|
325 | 269 |
/** |
326 | 270 |
* Returns the <code>SourceFk</code> attribute. |
327 |
* @param reference The {@link ReferenceBase reference}.
|
|
271 |
* @param description The {@link DescriptionBase Description}.
|
|
328 | 272 |
* @return The <code>SourceFk</code> attribute. |
329 | 273 |
* @see MethodMapper |
330 | 274 |
*/ |
... | ... | |
354 | 298 |
|
355 | 299 |
/** |
356 | 300 |
* Returns the <code>SourceUseFk</code> attribute. |
357 |
* @param reference The {@link ReferenceBase reference}.
|
|
301 |
* @param description The {@link DescriptionBase Description}.
|
|
358 | 302 |
* @return The <code>SourceUseFk</code> attribute. |
359 | 303 |
* @see MethodMapper |
360 | 304 |
*/ |
361 | 305 |
@SuppressWarnings("unused") |
362 | 306 |
private static Integer getSourceUseFk(ReferenceBase<?> reference) { |
363 |
// TODO: CDM sourceUseId and PESI sourceUseId are equal for now.
|
|
307 |
// TODO |
|
364 | 308 |
Integer result = null; |
365 |
if (isSourceUse_AdditionalSource()) {
|
|
309 |
if (sourceUse_AdditionalSource) {
|
|
366 | 310 |
result = PesiTransformer.sourceUseIdSourceUseId(3); |
367 |
} else if (isSourceUse_SourceOfSynonymy()) {
|
|
311 |
} else if (sourceUse_SourceOfSynonymy) {
|
|
368 | 312 |
result = PesiTransformer.sourceUseIdSourceUseId(4); |
369 |
} else if (isSourceUse_NomenclaturalReference()) {
|
|
313 |
} else if (sourceUse_NomenclaturalReference) {
|
|
370 | 314 |
result = PesiTransformer.sourceUseIdSourceUseId(8); |
371 | 315 |
} |
372 | 316 |
return result; |
... | ... | |
374 | 318 |
|
375 | 319 |
/** |
376 | 320 |
* Returns the <code>SourceUseCache</code> attribute. |
377 |
* @param reference The {@link ReferenceBase reference}.
|
|
321 |
* @param description The {@link DescriptionBase Description}.
|
|
378 | 322 |
* @return The <code>SourceUseCache</code> attribute. |
379 | 323 |
* @see MethodMapper |
380 | 324 |
*/ |
381 | 325 |
@SuppressWarnings("unused") |
382 | 326 |
private static String getSourceUseCache(ReferenceBase<?> reference) { |
383 |
// TODO: CDM sourceUseId and PESI sourceUseId are equal for now.
|
|
327 |
// TODO |
|
384 | 328 |
String result = null; |
385 |
if (isSourceUse_AdditionalSource()) {
|
|
329 |
if (sourceUse_AdditionalSource) {
|
|
386 | 330 |
result = PesiTransformer.sourceUseId2SourceUseCache(3); |
387 |
} else if (isSourceUse_SourceOfSynonymy()) {
|
|
331 |
} else if (sourceUse_SourceOfSynonymy) {
|
|
388 | 332 |
result = PesiTransformer.sourceUseId2SourceUseCache(4); |
389 |
} else if (isSourceUse_NomenclaturalReference()) {
|
|
333 |
} else if (sourceUse_NomenclaturalReference) {
|
|
390 | 334 |
result = PesiTransformer.sourceUseId2SourceUseCache(8); |
391 | 335 |
} |
392 | 336 |
return result; |
... | ... | |
394 | 338 |
|
395 | 339 |
/** |
396 | 340 |
* Returns the <code>SourceNameCache</code> attribute. |
397 |
* @param reference The {@link ReferenceBase reference}.
|
|
341 |
* @param description The {@link DescriptionBase Description}.
|
|
398 | 342 |
* @return The <code>SourceNameCache</code> attribute. |
399 | 343 |
* @see MethodMapper |
400 | 344 |
*/ |
... | ... | |
409 | 353 |
|
410 | 354 |
/** |
411 | 355 |
* Returns the <code>SourceDetail</code> attribute. |
412 |
* @param reference The {@link ReferenceBase reference}.
|
|
356 |
* @param description The {@link DescriptionBase Description}.
|
|
413 | 357 |
* @return The <code>SourceDetail</code> attribute. |
414 | 358 |
* @see MethodMapper |
415 | 359 |
*/ |
Also available in: Unified diff
merging /branches/cdmlib/SPRINT-Chichorieae1/ to trunk