Project

General

Profile

« Previous | Next » 

Revision 892efc69

Added by Andreas Kohlbecker almost 14 years ago

merging /branches/cdmlib/SPRINT-Chichorieae1/ to trunk

View differences:

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