Revision 783428fc
Added by Patrick Plitzner almost 8 years ago
app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/gefaesspflanzen/RedListGefaesspflanzenImportClassification.java | ||
---|---|---|
36 | 36 |
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType; |
37 | 37 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
38 | 38 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase; |
39 |
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType; |
|
39 | 40 |
|
40 | 41 |
/** |
41 | 42 |
* |
... | ... | |
131 | 132 |
String gueltString = rs.getString(RedListUtil.GUELT); |
132 | 133 |
String taxZusatzString = rs.getString(RedListUtil.TAX_ZUSATZ); |
133 | 134 |
|
135 |
String relationE = rs.getString(RedListUtil.E); |
|
136 |
String relationW = rs.getString(RedListUtil.W); |
|
137 |
String relationK = rs.getString(RedListUtil.K); |
|
138 |
String relationAW = rs.getString(RedListUtil.AW); |
|
139 |
String relationAO = rs.getString(RedListUtil.AO); |
|
140 |
String relationR = rs.getString(RedListUtil.R); |
|
141 |
String relationO = rs.getString(RedListUtil.O); |
|
142 |
String relationS = rs.getString(RedListUtil.S); |
|
143 |
|
|
134 | 144 |
//Gesamtliste |
135 | 145 |
TaxonBase<?> taxonBaseGL = state.getRelatedObject(RedListUtil.TAXON_GESAMTLISTE_NAMESPACE, String.valueOf(id), TaxonBase.class); |
136 | 146 |
TaxonBase<?> parentBaseGL = state.getRelatedObject(RedListUtil.TAXON_GESAMTLISTE_NAMESPACE, parentId, TaxonBase.class); |
... | ... | |
160 | 170 |
} |
161 | 171 |
|
162 | 172 |
//add taxa for concept relationships to E, W, K, AW, AO, R, O, S |
163 |
addTaxonToClassification(classificationE, RedListUtil.CLASSIFICATION_NAMESPACE_E, id, state); |
|
164 |
addTaxonToClassification(classificationW, RedListUtil.CLASSIFICATION_NAMESPACE_W, id, state); |
|
165 |
addTaxonToClassification(classificationK, RedListUtil.CLASSIFICATION_NAMESPACE_K, id, state); |
|
166 |
addTaxonToClassification(classificationAW, RedListUtil.CLASSIFICATION_NAMESPACE_AW, id, state); |
|
167 |
addTaxonToClassification(classificationAO, RedListUtil.CLASSIFICATION_NAMESPACE_AO, id, state); |
|
168 |
addTaxonToClassification(classificationR, RedListUtil.CLASSIFICATION_NAMESPACE_R, id, state); |
|
169 |
addTaxonToClassification(classificationO, RedListUtil.CLASSIFICATION_NAMESPACE_O, id, state); |
|
170 |
addTaxonToClassification(classificationS, RedListUtil.CLASSIFICATION_NAMESPACE_S, id, state); |
|
173 |
addTaxonToClassification(classificationE, RedListUtil.CLASSIFICATION_NAMESPACE_E, relationE, taxonBaseGL, taxonBaseCL, id, state);
|
|
174 |
addTaxonToClassification(classificationW, RedListUtil.CLASSIFICATION_NAMESPACE_W, relationW, taxonBaseGL, taxonBaseCL, id, state);
|
|
175 |
addTaxonToClassification(classificationK, RedListUtil.CLASSIFICATION_NAMESPACE_K, relationK, taxonBaseGL, taxonBaseCL, id, state);
|
|
176 |
addTaxonToClassification(classificationAW, RedListUtil.CLASSIFICATION_NAMESPACE_AW, relationAW, taxonBaseGL, taxonBaseCL, id, state);
|
|
177 |
addTaxonToClassification(classificationAO, RedListUtil.CLASSIFICATION_NAMESPACE_AO, relationAO, taxonBaseGL, taxonBaseCL, id, state);
|
|
178 |
addTaxonToClassification(classificationR, RedListUtil.CLASSIFICATION_NAMESPACE_R, relationR, taxonBaseGL, taxonBaseCL, id, state);
|
|
179 |
addTaxonToClassification(classificationO, RedListUtil.CLASSIFICATION_NAMESPACE_O, relationO, taxonBaseGL, taxonBaseCL, id, state);
|
|
180 |
addTaxonToClassification(classificationS, RedListUtil.CLASSIFICATION_NAMESPACE_S, relationS, taxonBaseGL, taxonBaseCL, id, state);
|
|
171 | 181 |
} |
172 | 182 |
|
173 |
private void addTaxonToClassification(Classification classification, String classificationNamespace, long id, RedListGefaesspflanzenImportState state){ |
|
183 |
private void addTaxonToClassification(Classification classification, String classificationNamespace, String relationString, final TaxonBase<?> gesamtListeTaxon, final TaxonBase<?> checklisteTaxon, long id, RedListGefaesspflanzenImportState state){
|
|
174 | 184 |
Taxon taxon = HibernateProxyHelper.deproxy(state.getRelatedObject(classificationNamespace, String.valueOf(id), TaxonBase.class), Taxon.class); |
185 |
//add concept relation to gesamtliste and checkliste |
|
186 |
if(CdmUtils.isNotBlank(relationString) && !relationString.equals(".")){ |
|
187 |
//if the related concept in gesamtliste/checkliste is a synonym then we |
|
188 |
//create a relation to the accepted taxon |
|
189 |
Taxon acceptedGesamtListeTaxon = getAcceptedTaxon(gesamtListeTaxon); |
|
190 |
Taxon acceptedChecklistTaxon = getAcceptedTaxon(checklisteTaxon); |
|
191 |
String relationSubstring = relationString.substring(relationString.length()-1, relationString.length()); |
|
192 |
TaxonRelationshipType taxonRelationshipTypeByKey = new RedListGefaesspflanzenTransformer().getTaxonRelationshipTypeByKey(relationSubstring); |
|
193 |
if(taxonRelationshipTypeByKey==null){ |
|
194 |
RedListUtil.logMessage(id, "Could not interpret relationship "+relationString+" for taxon "+gesamtListeTaxon.generateTitle(), logger); |
|
195 |
} |
|
196 |
//there is no type "included in" so we have to reverse the direction |
|
197 |
if(relationSubstring.equals("<")){ |
|
198 |
if(acceptedGesamtListeTaxon!=null){ |
|
199 |
acceptedGesamtListeTaxon.addTaxonRelation(taxon, taxonRelationshipTypeByKey, null, null); |
|
200 |
} |
|
201 |
if(acceptedChecklistTaxon!=null) { |
|
202 |
acceptedChecklistTaxon.addTaxonRelation(taxon, taxonRelationshipTypeByKey, null, null); |
|
203 |
} |
|
204 |
} |
|
205 |
else{ |
|
206 |
if(acceptedGesamtListeTaxon!=null){ |
|
207 |
taxon.addTaxonRelation(acceptedGesamtListeTaxon, taxonRelationshipTypeByKey, null, null); |
|
208 |
} |
|
209 |
if(acceptedChecklistTaxon!=null) { |
|
210 |
taxon.addTaxonRelation(acceptedChecklistTaxon, taxonRelationshipTypeByKey, null, null); |
|
211 |
} |
|
212 |
} |
|
213 |
} |
|
214 |
|
|
175 | 215 |
if(taxon!=null){//not all taxa exist in these classifications |
176 | 216 |
taxon.setSec(classification.getReference()); |
177 | 217 |
taxon.setTitleCache(null);//Reset title cache to reflect sec ref in title |
Also available in: Unified diff
#5448 Move import of concept relationships to classification import
class