Revision bff8d9fe
Added by Andreas Müller over 5 years ago
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/erms/ErmsSourceUsesImport.java | ||
---|---|---|
53 | 53 |
/** |
54 | 54 |
* @author a.mueller |
55 | 55 |
* @since 20.02.2010 |
56 |
* @version 1.0 |
|
57 | 56 |
*/ |
58 | 57 |
@Component |
59 | 58 |
public class ErmsSourceUsesImport extends ErmsImportBase<CommonTaxonName> { |
60 |
private static final Logger logger = Logger.getLogger(ErmsSourceUsesImport.class);
|
|
59 |
private static final long serialVersionUID = -5139234838768878653L;
|
|
61 | 60 |
|
62 |
private DbImportMapping<ErmsImportState,ErmsImportConfigurator> mapping; //not needed |
|
61 |
private static final Logger logger = Logger.getLogger(ErmsSourceUsesImport.class); |
|
62 |
|
|
63 |
// private DbImportMapping<ErmsImportState, ErmsImportConfigurator> mapping; //not needed |
|
63 | 64 |
|
64 | 65 |
private static final String pluralString = "source uses"; |
65 | 66 |
private static final String dbTableName = "tu_sources"; |
... | ... | |
69 | 70 |
super(pluralString, dbTableName, cdmTargetClass); |
70 | 71 |
} |
71 | 72 |
|
72 |
|
|
73 |
/* (non-Javadoc) |
|
74 |
* @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getIdQuery() |
|
75 |
*/ |
|
76 | 73 |
@Override |
77 | 74 |
protected String getIdQuery() { |
78 | 75 |
String strQuery = " SELECT sourceuse_id, source_id, tu_id " + " " + |
... | ... | |
81 | 78 |
return strQuery; |
82 | 79 |
} |
83 | 80 |
|
84 |
|
|
85 |
|
|
86 |
/* (non-Javadoc) |
|
87 |
* @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getRecordQuery(eu.etaxonomy.cdm.io.erms.ErmsImportConfigurator) |
|
88 |
*/ |
|
89 | 81 |
@Override |
90 | 82 |
protected String getRecordQuery(ErmsImportConfigurator config) { |
91 | 83 |
String strRecordQuery = |
... | ... | |
99 | 91 |
|
100 | 92 |
|
101 | 93 |
@Override |
102 |
public boolean doPartition(ResultSetPartitioner partitioner, ErmsImportState state) { |
|
94 |
public boolean doPartition(@SuppressWarnings("rawtypes") ResultSetPartitioner partitioner, ErmsImportState state) {
|
|
103 | 95 |
boolean success = true ; |
104 |
Set objectsToSave = new HashSet<IdentifiableEntity>();
|
|
96 |
Set objectsToSave = new HashSet<>(); |
|
105 | 97 |
|
106 | 98 |
// DbImportMapping<?, ?> mapping = getMapping(); |
107 | 99 |
// mapping.initialize(state, cdmTargetClass); |
... | ... | |
121 | 113 |
if (StringUtils.isBlank(strPageNr)){ |
122 | 114 |
strPageNr = null; |
123 | 115 |
} |
124 |
Reference ref = (Reference)state.getRelatedObject(ErmsReferenceImport.REFERENCE_NAMESPACE, strSourceId);
|
|
116 |
Reference ref = (Reference)state.getRelatedObject(ErmsImportBase.REFERENCE_NAMESPACE, strSourceId);
|
|
125 | 117 |
|
126 | 118 |
try { |
127 | 119 |
IdentifiableEntity<?> objectToSave = null; |
... | ... | |
171 | 163 |
* |
172 | 164 |
*/ |
173 | 165 |
private TaxonName makeOriginalDescription(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
174 |
TaxonName taxonName = (TaxonName)state.getRelatedObject(ErmsTaxonImport.NAME_NAMESPACE, strTaxonId);
|
|
166 |
TaxonName taxonName = (TaxonName)state.getRelatedObject(ErmsImportBase.NAME_NAMESPACE, strTaxonId);
|
|
175 | 167 |
taxonName.setNomenclaturalReference(ref); |
176 | 168 |
taxonName.setNomenclaturalMicroReference(strPageNr); |
177 | 169 |
return taxonName; |
... | ... | |
185 | 177 |
* @param strPageNr |
186 | 178 |
*/ |
187 | 179 |
private boolean isFirstBasisOfRecord = true; |
188 |
private IdentifiableEntity<?> makeBasisOfRecord(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
|
180 |
@SuppressWarnings("unused") |
|
181 |
private IdentifiableEntity<?> makeBasisOfRecord(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
|
189 | 182 |
if (isFirstBasisOfRecord){ |
190 | 183 |
logger.warn("Basis of record not yet implemented"); |
191 | 184 |
isFirstBasisOfRecord = false; |
... | ... | |
208 | 201 |
logger.warn("Source is null"); |
209 | 202 |
return null; |
210 | 203 |
} |
211 |
TaxonBase<?> taxonBase = (TaxonBase<?>)state.getRelatedObject(ErmsTaxonImport.TAXON_NAMESPACE, strTaxonId);
|
|
204 |
TaxonBase<?> taxonBase = (TaxonBase<?>)state.getRelatedObject(ErmsImportBase.TAXON_NAMESPACE, strTaxonId);
|
|
212 | 205 |
Taxon taxon; |
213 | 206 |
|
214 | 207 |
//if taxon base is a synonym, add the description to the accepted taxon |
... | ... | |
246 | 239 |
* @param strPageNr |
247 | 240 |
*/ |
248 | 241 |
private IdentifiableEntity<?> makeSourceOfSynonymy(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
249 |
TaxonBase<?> taxonBase = (TaxonBase<?>)state.getRelatedObject(ErmsTaxonImport.TAXON_NAMESPACE, strTaxonId);
|
|
242 |
TaxonBase<?> taxonBase = (TaxonBase<?>)state.getRelatedObject(ErmsImportBase.TAXON_NAMESPACE, strTaxonId);
|
|
250 | 243 |
if (taxonBase == null){ |
251 | 244 |
String warning = "taxonBase (id = " + strTaxonId + ") could not be found "; |
252 | 245 |
logger.warn(warning); |
... | ... | |
280 | 273 |
* @param strPageNr |
281 | 274 |
*/ |
282 | 275 |
private boolean isFirstRediscription = true; |
283 |
private IdentifiableEntity<?> makeRedescription(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
|
276 |
@SuppressWarnings("unused") |
|
277 |
private IdentifiableEntity<?> makeRedescription(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
|
284 | 278 |
if (isFirstRediscription){ |
285 | 279 |
logger.warn("Rediscription not yet implemented"); |
286 | 280 |
isFirstRediscription = false; |
... | ... | |
298 | 292 |
private IdentifiableEntity<?> makeCombinationReference(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
299 | 293 |
// Kopie von Orig. Comb. |
300 | 294 |
//TODO ist das wirklich der richtige Name, oder muss ein verknüpfter Name verwendet werden |
301 |
TaxonName taxonName = (TaxonName)state.getRelatedObject(ErmsTaxonImport.NAME_NAMESPACE, strTaxonId);
|
|
295 |
TaxonName taxonName = (TaxonName)state.getRelatedObject(ErmsImportBase.NAME_NAMESPACE, strTaxonId);
|
|
302 | 296 |
taxonName.setNomenclaturalReference(ref); |
303 | 297 |
taxonName.setNomenclaturalMicroReference(strPageNr); |
304 | 298 |
return taxonName; |
... | ... | |
313 | 307 |
* @param strPageNr |
314 | 308 |
*/ |
315 | 309 |
private boolean isFirstStatusSource = true; |
316 |
private IdentifiableEntity<?> makeStatusSource(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
|
310 |
@SuppressWarnings("unused") |
|
311 |
private IdentifiableEntity<?> makeStatusSource(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
|
317 | 312 |
if (isFirstStatusSource){ |
318 | 313 |
logger.warn("StatusSource not yet implemented"); |
319 | 314 |
isFirstStatusSource = false; |
... | ... | |
329 | 324 |
* @param strPageNr |
330 | 325 |
*/ |
331 | 326 |
private boolean isFirstEmendation = true; |
332 |
private IdentifiableEntity<?> makeEmendation(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
|
327 |
@SuppressWarnings("unused") |
|
328 |
private IdentifiableEntity<?> makeEmendation(ResultSetPartitioner<?> partitioner, ErmsImportState state, Reference ref, String strTaxonId, String strPageNr) { |
|
333 | 329 |
if (isFirstEmendation){ |
334 | 330 |
logger.warn("Emmendation not yet implemented"); |
335 | 331 |
isFirstEmendation = false; |
... | ... | |
337 | 333 |
return null; |
338 | 334 |
} |
339 | 335 |
|
340 |
|
|
341 |
|
|
342 |
/* (non-Javadoc) |
|
343 |
* @see eu.etaxonomy.cdm.io.common.mapping.IMappingImport#createObject(java.sql.ResultSet, eu.etaxonomy.cdm.io.common.ImportStateBase) |
|
344 |
*/ |
|
345 |
public CommonTaxonName createObject(ResultSet rs, ErmsImportState state) |
|
336 |
@SuppressWarnings("unused") |
|
337 |
public CommonTaxonName createObject(ResultSet rs, ErmsImportState state) |
|
346 | 338 |
throws SQLException { |
347 | 339 |
return null; //not needed |
348 | 340 |
} |
... | ... | |
355 | 347 |
String nameSpace; |
356 | 348 |
Class<?> cdmClass; |
357 | 349 |
Set<String> idSet; |
358 |
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
|
|
350 |
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<>(); |
|
359 | 351 |
|
360 | 352 |
try{ |
361 |
Set<String> taxonIdSet = new HashSet<String>();
|
|
362 |
Set<String> nameIdSet = new HashSet<String>();
|
|
363 |
Set<String> referenceIdSet = new HashSet<String>();
|
|
353 |
Set<String> taxonIdSet = new HashSet<>(); |
|
354 |
Set<String> nameIdSet = new HashSet<>(); |
|
355 |
Set<String> referenceIdSet = new HashSet<>(); |
|
364 | 356 |
while (rs.next()){ |
365 | 357 |
handleForeignKey(rs, taxonIdSet, "tu_id"); |
366 | 358 |
handleForeignKey(rs, nameIdSet, "tu_id"); |
... | ... | |
368 | 360 |
} |
369 | 361 |
|
370 | 362 |
//name map |
371 |
nameSpace = ErmsTaxonImport.NAME_NAMESPACE;
|
|
363 |
nameSpace = ErmsImportBase.NAME_NAMESPACE;
|
|
372 | 364 |
cdmClass = TaxonName.class; |
373 | 365 |
idSet = nameIdSet; |
374 |
Map<String, TaxonName> nameMap = (Map<String, TaxonName>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace); |
|
366 |
@SuppressWarnings("unchecked") |
|
367 |
Map<String, TaxonName> nameMap = (Map<String, TaxonName>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace); |
|
375 | 368 |
result.put(nameSpace, nameMap); |
376 | 369 |
|
377 | 370 |
//taxon map |
378 |
nameSpace = ErmsTaxonImport.TAXON_NAMESPACE;
|
|
371 |
nameSpace = ErmsImportBase.TAXON_NAMESPACE;
|
|
379 | 372 |
cdmClass = TaxonBase.class; |
380 | 373 |
idSet = taxonIdSet; |
381 |
Map<String, TaxonBase<?>> taxonMap = (Map<String, TaxonBase<?>>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace); |
|
374 |
@SuppressWarnings("unchecked") |
|
375 |
Map<String, TaxonBase<?>> taxonMap = (Map<String, TaxonBase<?>>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace); |
|
382 | 376 |
result.put(nameSpace, taxonMap); |
383 | 377 |
|
384 | 378 |
//reference map |
385 |
nameSpace = ErmsReferenceImport.REFERENCE_NAMESPACE;
|
|
379 |
nameSpace = ErmsImportBase.REFERENCE_NAMESPACE;
|
|
386 | 380 |
cdmClass = Reference.class; |
387 | 381 |
idSet = referenceIdSet; |
388 |
Map<String, Reference> referenceMap = (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(Reference.class, idSet, nameSpace); |
|
382 |
@SuppressWarnings("unchecked") |
|
383 |
Map<String, Reference> referenceMap = (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(Reference.class, idSet, nameSpace); |
|
389 | 384 |
result.put(nameSpace, referenceMap); |
390 | 385 |
|
391 | 386 |
|
... | ... | |
396 | 391 |
|
397 | 392 |
} |
398 | 393 |
|
399 |
/* (non-Javadoc) |
|
400 |
* @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator) |
|
401 |
*/ |
|
402 | 394 |
@Override |
403 | 395 |
protected boolean doCheck(ErmsImportState state){ |
404 | 396 |
IOValidator<ErmsImportState> validator = new ErmsSourceUsesImportValidator(); |
405 | 397 |
return validator.validate(state); |
406 | 398 |
} |
407 | 399 |
|
408 |
/* (non-Javadoc) |
|
409 |
* @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator) |
|
410 |
*/ |
|
411 | 400 |
@Override |
412 | 401 |
protected boolean isIgnore(ErmsImportState state){ |
413 | 402 |
boolean result = state.getConfig().getDoReferences() != IImportConfigurator.DO_REFERENCES.ALL; |
... | ... | |
415 | 404 |
return result; |
416 | 405 |
} |
417 | 406 |
|
418 |
|
|
419 |
/* (non-Javadoc) |
|
420 |
* @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getMapping() |
|
421 |
*/ |
|
422 | 407 |
@Override |
423 | 408 |
protected DbImportMapping<?, ?> getMapping() { |
424 | 409 |
logger.info("getMapping not implemented for EmrsSourceUsesImport"); |
425 | 410 |
return null; // not needed because Mapping is not implemented in this class yet |
426 | 411 |
} |
427 |
|
|
428 | 412 |
} |
Also available in: Unified diff
ref #1444 cleanup erms import code