Revision 9dc896c9
Added by Andreas Müller almost 7 years ago
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcsxml/in/TcsXmlTaxonNameImport.java | ||
---|---|---|
30 | 30 |
import eu.etaxonomy.cdm.model.name.INonViralName; |
31 | 31 |
import eu.etaxonomy.cdm.model.name.NomenclaturalCode; |
32 | 32 |
import eu.etaxonomy.cdm.model.name.Rank; |
33 |
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
|
|
33 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
|
34 | 34 |
import eu.etaxonomy.cdm.model.name.TaxonNameFactory; |
35 | 35 |
import eu.etaxonomy.cdm.model.reference.Reference; |
36 | 36 |
import eu.etaxonomy.cdm.model.reference.ReferenceFactory; |
... | ... | |
65 | 65 |
|
66 | 66 |
logger.info("start make TaxonNames ..."); |
67 | 67 |
MapWrapper<Person> authorMap = (MapWrapper<Person>)state.getStore(ICdmIO.TEAM_STORE); |
68 |
MapWrapper<TaxonNameBase> taxonNameMap = (MapWrapper<TaxonNameBase>)state.getStore(ICdmIO.TAXONNAME_STORE);
|
|
68 |
MapWrapper<TaxonName> taxonNameMap = (MapWrapper<TaxonName>)state.getStore(ICdmIO.TAXONNAME_STORE);
|
|
69 | 69 |
MapWrapper<Reference> referenceMap = (MapWrapper<Reference>)state.getStore(ICdmIO.REFERENCE_STORE); |
70 | 70 |
|
71 | 71 |
ResultWrapper<Boolean> success = ResultWrapper.NewInstance(true); |
... | ... | |
109 | 109 |
|
110 | 110 |
|
111 | 111 |
try { |
112 |
TaxonNameBase<?,?> nameBase;
|
|
112 |
TaxonName nameBase; |
|
113 | 113 |
NomenclaturalCode nomCode = TcsXmlTransformer.nomCodeString2NomCode(strNomenclaturalCode); |
114 | 114 |
if (nomCode != null){ |
115 | 115 |
nameBase = nomCode.getNewTaxonNameInstance(rank); |
... | ... | |
194 | 194 |
taxonNameMap.put(removeVersionOfRef(strId), handleTaxonNameElement(elTaxonName, success, state)); |
195 | 195 |
} |
196 | 196 |
logger.info(i + " names handled"); |
197 |
Collection<? extends TaxonNameBase> col = taxonNameMap.objects();
|
|
197 |
Collection<? extends TaxonName> col = taxonNameMap.objects(); |
|
198 | 198 |
getNameService().save((Collection)col); |
199 | 199 |
|
200 | 200 |
logger.info("end makeTaxonNames ..."); |
... | ... | |
257 | 257 |
return result; |
258 | 258 |
} |
259 | 259 |
|
260 |
public TaxonNameBase handleTaxonNameElement(Element elTaxonName, ResultWrapper<Boolean> success, TcsXmlImportState state){
|
|
260 |
public TaxonName handleTaxonNameElement(Element elTaxonName, ResultWrapper<Boolean> success, TcsXmlImportState state){ |
|
261 | 261 |
Namespace tcsNamespace = state.getConfig().getTcsXmlNamespace(); |
262 | 262 |
MapWrapper<Person> authorMap = (MapWrapper<Person>)state.getStore(ICdmIO.TEAM_STORE); |
263 |
MapWrapper<TaxonNameBase> taxonNameMap = (MapWrapper<TaxonNameBase>)state.getStore(ICdmIO.TAXONNAME_STORE);
|
|
263 |
MapWrapper<TaxonName> taxonNameMap = (MapWrapper<TaxonName>)state.getStore(ICdmIO.TAXONNAME_STORE);
|
|
264 | 264 |
MapWrapper<Reference> referenceMap = (MapWrapper<Reference>)state.getStore(ICdmIO.REFERENCE_STORE); |
265 | 265 |
|
266 | 266 |
|
... | ... | |
285 | 285 |
|
286 | 286 |
|
287 | 287 |
try { |
288 |
TaxonNameBase<?,?> nameBase;
|
|
288 |
TaxonName nameBase; |
|
289 | 289 |
NomenclaturalCode nomCode = TcsXmlTransformer.nomCodeString2NomCode(strNomenclaturalCode); |
290 | 290 |
if (nomCode != null){ |
291 | 291 |
nameBase = nomCode.getNewTaxonNameInstance(rank); |
... | ... | |
364 | 364 |
|
365 | 365 |
|
366 | 366 |
|
367 |
private void makeCanonicalAuthorship(TaxonNameBase name, Element elCanonicalAuthorship, MapWrapper<Person> authorMap, ResultWrapper<Boolean> success){
|
|
367 |
private void makeCanonicalAuthorship(TaxonName name, Element elCanonicalAuthorship, MapWrapper<Person> authorMap, ResultWrapper<Boolean> success){ |
|
368 | 368 |
if (elCanonicalAuthorship != null){ |
369 | 369 |
Namespace ns = elCanonicalAuthorship.getNamespace(); |
370 | 370 |
|
... | ... | |
411 | 411 |
} |
412 | 412 |
} |
413 | 413 |
|
414 |
private void makeMicroReference(TaxonNameBase name, Element elMicroReference, ResultWrapper<Boolean> success){
|
|
414 |
private void makeMicroReference(TaxonName name, Element elMicroReference, ResultWrapper<Boolean> success){ |
|
415 | 415 |
if (elMicroReference != null){ |
416 | 416 |
String microReference = elMicroReference.getTextNormalize(); |
417 | 417 |
name.setNomenclaturalMicroReference(microReference); |
418 | 418 |
} |
419 | 419 |
} |
420 | 420 |
|
421 |
private void makeCanonicalName(TaxonNameBase name, Element elCanonicalName, MapWrapper<TaxonNameBase> taxonNameMap, ResultWrapper<Boolean> success){
|
|
421 |
private void makeCanonicalName(TaxonName name, Element elCanonicalName, MapWrapper<TaxonName> taxonNameMap, ResultWrapper<Boolean> success){
|
|
422 | 422 |
boolean cacheProtected = false; |
423 | 423 |
|
424 | 424 |
if (elCanonicalName == null){ |
... | ... | |
522 | 522 |
//logger.warn("'makeCultivarName' Not yet implemented"); |
523 | 523 |
} |
524 | 524 |
|
525 |
private void makeGenusReferenceType(TaxonNameBase name, Element elGenus, MapWrapper<TaxonNameBase> taxonNameMap, ResultWrapper<Boolean> success){
|
|
525 |
private void makeGenusReferenceType(TaxonName name, Element elGenus, MapWrapper<TaxonName> taxonNameMap, ResultWrapper<Boolean> success){
|
|
526 | 526 |
if(name.isNonViral()){ |
527 | 527 |
INonViralName nonViralName = name; |
528 | 528 |
if (elGenus != null){ |
529 | 529 |
INonViralName genusReferenceName; |
530 | 530 |
//TODO code |
531 |
Class<? extends TaxonNameBase> clazz = TaxonNameBase.class;
|
|
531 |
Class<? extends TaxonName> clazz = TaxonName.class;
|
|
532 | 532 |
genusReferenceName = makeReferenceType(elGenus, clazz, taxonNameMap, success); |
533 | 533 |
genusReferenceName.setNameType(NomenclaturalCode.NonViral); |
534 | 534 |
//Genus is stored either in Genus part (if ref) or in titleCache (if plain text) |
... | ... | |
544 | 544 |
|
545 | 545 |
} |
546 | 546 |
|
547 |
private void makePublishedIn(TaxonNameBase name, Element elPublishedIn, MapWrapper<Reference> referenceMap, ResultWrapper<Boolean> success){
|
|
547 |
private void makePublishedIn(TaxonName name, Element elPublishedIn, MapWrapper<Reference> referenceMap, ResultWrapper<Boolean> success){ |
|
548 | 548 |
if (elPublishedIn != null && name != null){ |
549 | 549 |
Class<Reference> clazz = Reference.class; |
550 | 550 |
Reference ref = makeReferenceType(elPublishedIn, clazz, referenceMap, success); |
... | ... | |
561 | 561 |
} |
562 | 562 |
} |
563 | 563 |
|
564 |
private void makeYear(TaxonNameBase name, Element elYear, ResultWrapper<Boolean> success){
|
|
564 |
private void makeYear(TaxonName name, Element elYear, ResultWrapper<Boolean> success){ |
|
565 | 565 |
if (elYear != null){ |
566 | 566 |
String year = elYear.getTextNormalize(); |
567 | 567 |
if (year != null){ |
Also available in: Unified diff
fix #6368 rename table and class TaxonNameBase