Revision 96533ef2
Added by Andreas Müller about 12 years ago
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiTransformer.java | ||
---|---|---|
38 | 38 |
import eu.etaxonomy.cdm.model.location.NamedArea; |
39 | 39 |
import eu.etaxonomy.cdm.model.location.TdwgArea; |
40 | 40 |
import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry; |
41 |
import eu.etaxonomy.cdm.model.name.HybridRelationshipType; |
|
41 | 42 |
import eu.etaxonomy.cdm.model.name.NameRelationshipType; |
42 | 43 |
import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus; |
43 | 44 |
import eu.etaxonomy.cdm.model.name.NomenclaturalCode; |
... | ... | |
47 | 48 |
import eu.etaxonomy.cdm.model.reference.Reference; |
48 | 49 |
import eu.etaxonomy.cdm.model.reference.ReferenceType; |
49 | 50 |
import eu.etaxonomy.cdm.model.taxon.Synonym; |
51 |
import eu.etaxonomy.cdm.model.taxon.SynonymRelationship; |
|
50 | 52 |
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType; |
51 | 53 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
52 | 54 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase; |
... | ... | |
219 | 221 |
public static int IS_INFERRED_GENUS_FOR = 302; |
220 | 222 |
public static int IS_POTENTIAL_COMBINATION_FOR = 303; |
221 | 223 |
|
222 |
public static String STR_IS_BASIONYM_FOR = "is basionym for"; |
|
223 | 224 |
public static String STR_IS_BASIONYM_FOR_ZOOL = "is original combination for"; |
224 |
public static String STR_IS_LATER_HOMONYM_OF = "is later homonym of"; |
|
225 |
public static String STR_IS_REPLACED_SYNONYM_FOR = "is replaced synonym for"; |
|
226 |
public static String STR_IS_VALIDATION_OF = "is validation of"; |
|
227 |
public static String STR_IS_LATER_VALIDATION_OF = "is later validation of"; |
|
228 |
public static String STR_IS_TYPE_OF = "is type of"; |
|
229 |
public static String STR_IS_CONSERVED_TYPE_OF = "is conserved type of"; |
|
230 |
public static String STR_IS_REJECTED_TYPE_OF = "is rejected type of"; |
|
231 |
public static String STR_IS_FIRST_PARENT_OF = "is first parent of"; |
|
232 |
public static String STR_IS_SECOND_PARENT_OF = "is second parent of"; |
|
233 |
public static String STR_IS_FEMALE_PARENT_OF = "is female parent of"; |
|
234 |
public static String STR_IS_MALE_PARENT_OF = "is male parent of"; |
|
235 |
public static String STR_IS_CONSERVED_AGAINST = "is conserved against"; |
|
236 |
public static String STR_IS_REJECTED_IN_FAVOUR_OF = "is rejected in favour of"; |
|
237 |
public static String STR_IS_TREATED_AS_LATER_HOMONYM_OF = "is treated as later homonym of"; |
|
238 |
public static String STR_IS_ORTHOGRAPHIC_VARIANT_OF = "is orthographic variant of"; |
|
239 |
public static String STR_IS_ALTERNATIVE_NAME_FOR = "is alternative name for"; |
|
240 |
public static String STR_HAS_SAME_TYPE_AS = "has same type as"; |
|
241 |
public static String STR_IS_LECTOTYPE_OF = "is lectotype of"; |
|
242 |
public static String STR_TYPE_NOT_DESIGNATED = "type not designated"; |
|
243 |
public static String STR_IS_TAXONOMICALLY_INCLUDED_IN = "is taxonomically included in"; |
|
244 |
public static String STR_IS_SYNONYM_OF = "is synonym of"; |
|
245 |
public static String STR_IS_MISAPPLIED_NAME_FOR = "is misapplied name for"; |
|
246 |
public static String STR_IS_PRO_PARTE_SYNONYM_OF = "is pro parte synonym of"; |
|
247 |
public static String STR_IS_PARTIAL_SYNONYM_OF = "is partial synonym of"; |
|
248 |
public static String STR_IS_HETEROTYPIC_SYNONYM_OF = "is heterotypic synonym of"; |
|
249 | 225 |
public static String STR_IS_HETEROTYPIC_SYNONYM_OF_ZOOL = "is subjective synonym of"; |
250 |
public static String STR_IS_HOMOTYPIC_SYNONYM_OF = "is homotypic synonym of"; |
|
251 | 226 |
private static final String STR_IS_HOMOTYPIC_SYNONYM_OF_ZOOL = "is objective synonym of"; |
252 |
public static String STR_IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF = "is pro parte and homotypic synonym of"; |
|
253 |
public static String STR_IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF = "is pro parte and heterotypic synonym of"; |
|
254 |
public static String STR_IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF = "is partial and homotypic synonym of"; |
|
255 |
public static String STR_IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF = "is partial and heterotypic synonym of"; |
|
256 |
public static String STR_IS_INFERRED_EPITHET_FOR = "is inferred epithet for"; |
|
257 |
public static String STR_IS_INFERRED_GENUS_FOR = "is inferred genus for"; |
|
258 |
public static String STR_IS_POTENTIAL_COMBINATION_FOR = "is potential combination for"; |
|
259 | 227 |
|
228 |
|
|
229 |
//namespaces |
|
260 | 230 |
public static String STR_NAMESPACE_NOMINAL_TAXON = "Nominal taxon from TAX_ID:"; |
261 | 231 |
public static String STR_NAMESPACE_INFERRED_EPITHET = "Inferred epithet from TAX_ID:"; |
262 | 232 |
public static String STR_NAMESPACE_INFERRED_GENUS = "Inferred genus from TAX_ID:"; |
263 | 233 |
public static String STR_NAMESPACE_POTENTIAL_COMBINATION = "Potential combination from TAX_ID:"; |
264 | 234 |
|
235 |
|
|
265 | 236 |
// Kingdoms |
266 | 237 |
public static int KINGDOM_NULL = 0; |
267 | 238 |
public static int KINGDOM_ANIMALIA = 2; |
... | ... | |
1253 | 1224 |
private Map<String, String> tdwgLabelMap = new HashMap<String, String>(); |
1254 | 1225 |
private Map<Integer, String> nameStatusCacheMap = new HashMap<Integer, String>(); |
1255 | 1226 |
private Map<Integer, String> qualityStatusCacheMap = new HashMap<Integer, String>(); |
1227 |
private Map<Integer, String> taxRelQualifierCacheMap = new HashMap<Integer, String>(); |
|
1256 | 1228 |
|
1257 | 1229 |
|
1258 | 1230 |
private Source destination; |
... | ... | |
1298 | 1270 |
this.qualityStatusCacheMap.put(key, cache); |
1299 | 1271 |
} |
1300 | 1272 |
} |
1273 |
//qualityStatusCache |
|
1274 |
sql = " SELECT QualifierId, Qualifier FROM RelTaxonQualifier "; |
|
1275 |
rs = destination.getResultSet(sql); |
|
1276 |
while (rs.next()){ |
|
1277 |
Integer key = rs.getInt("QualifierId"); |
|
1278 |
String cache = rs.getString("Qualifier"); |
|
1279 |
if (StringUtils.isNotBlank(cache)){ |
|
1280 |
this.taxRelQualifierCacheMap.put(key, cache); |
|
1281 |
} |
|
1282 |
} |
|
1283 |
|
|
1284 |
|
|
1301 | 1285 |
|
1302 | 1286 |
} catch (SQLException e) { |
1303 | 1287 |
logger.error("SQLException when trying to read area map", e); |
... | ... | |
3514 | 3498 |
* @param relation |
3515 | 3499 |
* @return |
3516 | 3500 |
*/ |
3517 |
public static String taxonRelation2RelTaxonQualifierCache(RelationshipBase<?,?,?> relation, NomenclaturalCode code){
|
|
3518 |
if (relation == null) {
|
|
3501 |
public String getCacheByRelationshipType(RelationshipBase relation, NomenclaturalCode code){
|
|
3502 |
if (relation == null){ |
|
3519 | 3503 |
return null; |
3520 |
} |
|
3521 |
RelationshipTermBase<?> type = relation.getType(); |
|
3522 |
if (type.equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())) { |
|
3523 |
return STR_IS_MISAPPLIED_NAME_FOR; |
|
3524 |
} else if (type.equals(SynonymRelationshipType.SYNONYM_OF())) { |
|
3525 |
return STR_IS_SYNONYM_OF; |
|
3526 |
} else if (type.equals(SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF())) { |
|
3527 |
if (code.equals(NomenclaturalCode.ICZN)){ |
|
3528 |
return STR_IS_HOMOTYPIC_SYNONYM_OF_ZOOL; |
|
3529 |
}else{ |
|
3530 |
return STR_IS_HOMOTYPIC_SYNONYM_OF; |
|
3531 |
} |
|
3532 |
} else if (type.equals(SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF())) { |
|
3533 |
if (code.equals(NomenclaturalCode.ICZN)){ |
|
3534 |
return STR_IS_HETEROTYPIC_SYNONYM_OF_ZOOL; |
|
3535 |
}else{ |
|
3536 |
return STR_IS_HETEROTYPIC_SYNONYM_OF; |
|
3537 |
} |
|
3538 |
} else if (type.equals(SynonymRelationshipType.INFERRED_EPITHET_OF())) { |
|
3539 |
return STR_IS_INFERRED_EPITHET_FOR; |
|
3540 |
} else if (type.equals(SynonymRelationshipType.INFERRED_GENUS_OF())) { |
|
3541 |
return STR_IS_INFERRED_GENUS_FOR; |
|
3542 |
} else if (type.equals(SynonymRelationshipType.POTENTIAL_COMBINATION_OF())) { |
|
3543 |
return STR_IS_POTENTIAL_COMBINATION_FOR; |
|
3544 |
} else if (type.equals(NameRelationshipType.BASIONYM())) { |
|
3504 |
}else{ |
|
3505 |
//preliminary until #2816 is fixed |
|
3506 |
RelationshipTermBase<?> type = relation.getType(); |
|
3545 | 3507 |
if (code.equals(NomenclaturalCode.ICZN)){ |
3546 |
return STR_IS_BASIONYM_FOR_ZOOL; |
|
3547 |
}else{ |
|
3548 |
return STR_IS_BASIONYM_FOR; |
|
3508 |
if (type.equals(NameRelationshipType.BASIONYM())) { |
|
3509 |
return STR_IS_BASIONYM_FOR_ZOOL; |
|
3510 |
}else if (type.equals(SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF())) { |
|
3511 |
return STR_IS_HOMOTYPIC_SYNONYM_OF_ZOOL; |
|
3512 |
} else if (type.equals(SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF())) { |
|
3513 |
return STR_IS_HETEROTYPIC_SYNONYM_OF_ZOOL; |
|
3514 |
} |
|
3549 | 3515 |
} |
3550 |
} else if (type.equals(NameRelationshipType.LATER_HOMONYM())) { |
|
3551 |
return STR_IS_LATER_HOMONYM_OF; |
|
3552 |
} else if (type.equals(NameRelationshipType.REPLACED_SYNONYM())) { |
|
3553 |
return STR_IS_REPLACED_SYNONYM_FOR; |
|
3554 |
} else if (type.equals(NameRelationshipType.VALIDATED_BY_NAME())) { |
|
3555 |
return STR_IS_VALIDATION_OF; |
|
3556 |
} else if (type.equals(NameRelationshipType.LATER_VALIDATED_BY_NAME())) { |
|
3557 |
return STR_IS_LATER_VALIDATION_OF; |
|
3558 |
} else if (type.equals(NameRelationshipType.CONSERVED_AGAINST())) { |
|
3559 |
return STR_IS_CONSERVED_AGAINST; |
|
3560 |
} else if (type.equals(NameRelationshipType.TREATED_AS_LATER_HOMONYM())) { |
|
3561 |
return STR_IS_TREATED_AS_LATER_HOMONYM_OF; |
|
3562 |
} else if (type.equals(NameRelationshipType.ORTHOGRAPHIC_VARIANT())) { |
|
3563 |
return STR_IS_ORTHOGRAPHIC_VARIANT_OF; |
|
3564 |
} else if (type.equals(NameRelationshipType.ALTERNATIVE_NAME())) { |
|
3565 |
return STR_IS_ALTERNATIVE_NAME_FOR; |
|
3566 |
} else { |
|
3567 |
logger.warn("No equivalent RelationshipType found in datawarehouse for: " + type.getTitleCache()); |
|
3568 |
} |
|
3516 |
//end preliminary |
|
3569 | 3517 |
|
3570 |
// The following have no equivalent attribute in CDM |
|
3571 |
// IS_TYPE_OF |
|
3572 |
// IS_CONSERVED_TYPE_OF |
|
3573 |
// IS_REJECTED_TYPE_OF |
|
3574 |
// IS_FIRST_PARENT_OF |
|
3575 |
// IS_SECOND_PARENT_OF |
|
3576 |
// IS_FEMALE_PARENT_OF |
|
3577 |
// IS_MALE_PARENT_OF |
|
3578 |
// IS_REJECTED_IN_FAVOUR_OF |
|
3579 |
// HAS_SAME_TYPE_AS |
|
3580 |
// IS_LECTOTYPE_OF |
|
3581 |
// TYPE_NOT_DESIGNATED |
|
3582 |
// IS_PRO_PARTE_SYNONYM_OF |
|
3583 |
// IS_PARTIAL_SYNONYM_OF |
|
3584 |
// IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF |
|
3585 |
// IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF |
|
3586 |
// IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF |
|
3587 |
// IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF |
|
3588 |
|
|
3589 |
return null; |
|
3518 |
Integer key = taxonRelation2RelTaxonQualifierFk(relation); |
|
3519 |
return this.taxRelQualifierCacheMap.get(key); |
|
3520 |
} |
|
3590 | 3521 |
} |
3591 | 3522 |
|
3592 | 3523 |
/** |
... | ... | |
3602 | 3533 |
if (type.equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())) { |
3603 | 3534 |
return IS_MISAPPLIED_NAME_FOR; |
3604 | 3535 |
} else if (type.equals(SynonymRelationshipType.SYNONYM_OF())) { |
3605 |
return IS_SYNONYM_OF; |
|
3536 |
SynonymRelationship synRel = CdmBase.deproxy(relation, SynonymRelationship.class); |
|
3537 |
if (synRel.isProParte()){ |
|
3538 |
return IS_PRO_PARTE_SYNONYM_OF; |
|
3539 |
}else if (synRel.isPartial()){ |
|
3540 |
return IS_PARTIAL_SYNONYM_OF; |
|
3541 |
}else{ |
|
3542 |
return IS_SYNONYM_OF; |
|
3543 |
} |
|
3606 | 3544 |
} else if (type.equals(SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF())) { |
3607 |
return IS_HOMOTYPIC_SYNONYM_OF; |
|
3545 |
SynonymRelationship synRel = CdmBase.deproxy(relation, SynonymRelationship.class); |
|
3546 |
if (synRel.isProParte()){ |
|
3547 |
return IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF; |
|
3548 |
}else if (synRel.isPartial()){ |
|
3549 |
return IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF; |
|
3550 |
}else{ |
|
3551 |
return IS_HOMOTYPIC_SYNONYM_OF; |
|
3552 |
} |
|
3608 | 3553 |
} else if (type.equals(SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF())) { |
3609 |
return IS_HETEROTYPIC_SYNONYM_OF; |
|
3554 |
SynonymRelationship synRel = CdmBase.deproxy(relation, SynonymRelationship.class); |
|
3555 |
if (synRel.isProParte()){ |
|
3556 |
return IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF; |
|
3557 |
}else if (synRel.isPartial()){ |
|
3558 |
return IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF; |
|
3559 |
}else{ |
|
3560 |
return IS_HETEROTYPIC_SYNONYM_OF; |
|
3561 |
} |
|
3610 | 3562 |
} else if (type.equals(SynonymRelationshipType.INFERRED_EPITHET_OF())) { |
3611 | 3563 |
return IS_INFERRED_EPITHET_FOR; |
3612 | 3564 |
} else if (type.equals(SynonymRelationshipType.INFERRED_GENUS_OF())) { |
... | ... | |
3631 | 3583 |
return IS_ORTHOGRAPHIC_VARIANT_OF; |
3632 | 3584 |
} else if (type.equals(NameRelationshipType.ALTERNATIVE_NAME())) { |
3633 | 3585 |
return IS_ALTERNATIVE_NAME_FOR; |
3586 |
} else if (type.equals(HybridRelationshipType.FEMALE_PARENT())) { |
|
3587 |
return IS_FEMALE_PARENT_OF; |
|
3588 |
} else if (type.equals(HybridRelationshipType.MALE_PARENT())) { |
|
3589 |
return IS_MALE_PARENT_OF; |
|
3590 |
} else if (type.equals(HybridRelationshipType.FIRST_PARENT())) { |
|
3591 |
return IS_FIRST_PARENT_OF; |
|
3592 |
} else if (type.equals(HybridRelationshipType.SECOND_PARENT())) { |
|
3593 |
return IS_SECOND_PARENT_OF; |
|
3594 |
|
|
3634 | 3595 |
} else { |
3635 | 3596 |
logger.warn("No equivalent RelationshipType found in datawarehouse for: " + type.getTitleCache()); |
3636 | 3597 |
} |
... | ... | |
3639 | 3600 |
// IS_TYPE_OF |
3640 | 3601 |
// IS_CONSERVED_TYPE_OF |
3641 | 3602 |
// IS_REJECTED_TYPE_OF |
3642 |
// IS_FIRST_PARENT_OF |
|
3643 |
// IS_SECOND_PARENT_OF |
|
3644 |
// IS_FEMALE_PARENT_OF |
|
3645 |
// IS_MALE_PARENT_OF |
|
3646 | 3603 |
// IS_REJECTED_IN_FAVOUR_OF |
3647 | 3604 |
// HAS_SAME_TYPE_AS |
3648 | 3605 |
// IS_LECTOTYPE_OF |
3649 | 3606 |
// TYPE_NOT_DESIGNATED |
3650 |
// IS_PRO_PARTE_SYNONYM_OF |
|
3651 |
// IS_PARTIAL_SYNONYM_OF |
|
3652 |
// IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF |
|
3653 |
// IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF |
|
3654 |
// IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF |
|
3655 |
// IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF |
|
3607 |
|
|
3656 | 3608 |
|
3657 | 3609 |
return null; |
3658 | 3610 |
} |
... | ... | |
3748 | 3700 |
}else{ |
3749 | 3701 |
return this.qualityStatusCacheMap.get(qualityStatusId); |
3750 | 3702 |
} |
3751 |
|
|
3752 | 3703 |
} |
3753 | 3704 |
|
3754 | 3705 |
public static String getOriginalDbBySources(BitSet sources) { |
Also available in: Unified diff
getAllRelationships reimplemented to match only relevant relationship classes,
Export generics include Transformer type