Revision 51688d00
Added by Andreas Müller almost 7 years ago
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/indexFungorum/IndexFungorumSubSpeciesImport.java | ||
---|---|---|
13 | 13 |
import eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator; |
14 | 14 |
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; |
15 | 15 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
16 |
import eu.etaxonomy.cdm.model.name.NonViralName; |
|
17 |
import eu.etaxonomy.cdm.model.name.TaxonNameBase; |
|
16 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
|
18 | 17 |
import eu.etaxonomy.cdm.model.taxon.Classification; |
19 | 18 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
20 | 19 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase; |
... | ... | |
28 | 27 |
private static final Logger logger = Logger.getLogger(IndexFungorumSpeciesImport.class); |
29 | 28 |
|
30 | 29 |
private static final String pluralString = "subSpecies"; |
31 |
|
|
32 |
|
|
30 |
|
|
31 |
|
|
33 | 32 |
public IndexFungorumSubSpeciesImport(){ |
34 | 33 |
super(pluralString, null, null); |
35 | 34 |
|
36 | 35 |
} |
37 |
|
|
36 |
|
|
38 | 37 |
public IndexFungorumSubSpeciesImport(String pluralString, |
39 | 38 |
String dbTableName, Class cdmTargetClass) { |
40 | 39 |
super(pluralString, dbTableName, cdmTargetClass); |
41 |
|
|
40 |
|
|
42 | 41 |
} |
43 | 42 |
|
44 | 43 |
@Override |
... | ... | |
65 | 64 |
// TODO Auto-generated method stub |
66 | 65 |
return false; |
67 | 66 |
} |
68 |
|
|
67 |
|
|
69 | 68 |
@Override |
70 | 69 |
protected void doInvoke(IndexFungorumImportState state){ |
71 | 70 |
System.out.println("create infraspecific - specific relationship: " + state.getInfraspecificTaxaUUIDs().size() + " taxa"); |
72 |
|
|
71 |
|
|
73 | 72 |
List<String> propertyPaths = new ArrayList<String>(); |
74 | 73 |
propertyPaths.add("taxonNodes.*"); |
75 | 74 |
propertyPaths.add("taxonNodes.classification"); |
... | ... | |
82 | 81 |
TransactionStatus txStatus = startTransaction(); |
83 | 82 |
Taxon infraspecificTaxon = (Taxon)getTaxonService().load(infraspecificTaxonUUID, propertyPaths); |
84 | 83 |
//HibernateProxyHelper.deproxy(infraspecificTaxon); |
85 |
TaxonNameBase name = infraspecificTaxon.getName();
|
|
84 |
TaxonName name = infraspecificTaxon.getName(); |
|
86 | 85 |
|
87 | 86 |
UUID uuid = getNameService().saveOrUpdate(name); |
88 | 87 |
String parentNameString = getParentNameInfraSpecific(name); |
89 | 88 |
System.out.println("Parent name string: " + parentNameString); |
90 | 89 |
MatchingTaxonConfigurator matchingConfig = new MatchingTaxonConfigurator(); |
91 | 90 |
matchingConfig.setTaxonNameTitle(parentNameString); |
92 |
|
|
91 |
|
|
93 | 92 |
matchingConfig.setPropertyPath(propertyPaths); |
94 | 93 |
List<TaxonBase> potentialParents = getTaxonService().findTaxaByName(matchingConfig); |
95 | 94 |
//Taxon.class, parentNameString + "sec. ", MatchMode.BEGINNING, , pageSize, pageNumber, orderHints, propertyPaths) |
... | ... | |
97 | 96 |
if (potentialParents.size()>1){ |
98 | 97 |
for (TaxonBase potentialParent:potentialParents){ |
99 | 98 |
if (potentialParent.getTitleCache().equals(parentNameString + " sec*")){ |
100 |
classification.addParentChild((Taxon)potentialParent, (Taxon)infraspecificTaxon, null, null);
|
|
99 |
classification.addParentChild((Taxon)potentialParent, infraspecificTaxon, null, null); |
|
101 | 100 |
} |
102 | 101 |
} |
103 | 102 |
}else if (!potentialParents.isEmpty()){ |
... | ... | |
115 | 114 |
* @param taxon |
116 | 115 |
* @return |
117 | 116 |
*/ |
118 |
private String getParentNameInfraSpecific(TaxonNameBase taxonName){
|
|
119 |
NonViralName<NonViralName> name = HibernateProxyHelper.deproxy(taxonName, NonViralName.class);
|
|
117 |
private String getParentNameInfraSpecific(TaxonName taxonName){ |
|
118 |
TaxonName name = HibernateProxyHelper.deproxy(taxonName);
|
|
120 | 119 |
String parentName = name.getGenusOrUninomial() + " " + name.getSpecificEpithet(); |
121 | 120 |
|
122 | 121 |
return parentName; |
Also available in: Unified diff
ref #6368 , ref #6671, ref #6630 adapt pesi to no taxon name model