From c0c4c3569424a7798a5f13b02ca51f15b58739bb Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Mon, 18 Jul 2016 10:40:00 +0200
Subject: [PATCH] #5448 Import cultivar as CultivarPlantName
---
.../RedListGefaesspflanzenImportNames.java | 168 ++++++++++--------
1 file changed, 95 insertions(+), 73 deletions(-)
diff --git a/app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/gefaesspflanzen/RedListGefaesspflanzenImportNames.java b/app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/gefaesspflanzen/RedListGefaesspflanzenImportNames.java
index 9713e498..52979ad3 100644
--- a/app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/gefaesspflanzen/RedListGefaesspflanzenImportNames.java
+++ b/app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/gefaesspflanzen/RedListGefaesspflanzenImportNames.java
@@ -37,6 +37,7 @@ import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.name.BotanicalName;
+import eu.etaxonomy.cdm.model.name.CultivarPlantName;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
import eu.etaxonomy.cdm.model.name.NonViralName;
@@ -338,40 +339,32 @@ public class RedListGefaesspflanzenImportNames extends DbImportBase name = null;
Rank rank = makeRank(id, state, rangString, ep3String!=null);
- NonViralName> name = BotanicalName.NewInstance(rank);
+ //cultivar
+ if(rank!= null && rank.equals(Rank.CULTIVAR())){
+ CultivarPlantName cultivar = CultivarPlantName.NewInstance(rank);
+ cultivar.setGenusOrUninomial(ep1String);
+ cultivar.setSpecificEpithet(ep2String);
+ cultivar.setCultivarName(ep3String);
+ name = cultivar;
+ }
+ //botanical names
+ else{
+ name = BotanicalName.NewInstance(rank);
- //ep1 should always be present
- if(CdmUtils.isBlank(ep1String)){
- RedListUtil.logMessage(id, RedListUtil.EPI1+" is empty!", logger);
- }
- name.setGenusOrUninomial(ep1String);
- if(CdmUtils.isNotBlank(ep2String)){
- if(rank!=null && rank.isInfraGenericButNotSpeciesGroup()){
- name.setInfraGenericEpithet(ep2String);
- }
- else{
- name.setSpecificEpithet(ep2String);
+ //ep1 should always be present
+ if(CdmUtils.isBlank(ep1String)){
+ RedListUtil.logMessage(id, RedListUtil.EPI1+" is empty!", logger);
}
- }
- if(CdmUtils.isNotBlank(ep3String)){
- name.setInfraSpecificEpithet(ep3String);
- }
- //nomenclatural status
- if(CdmUtils.isNotBlank(nomZusatzString)){
- NomenclaturalStatusType statusType = makeNomenclaturalStatus(id, state, nomZusatzString);
- if(statusType!=null){
- NomenclaturalStatus status = NomenclaturalStatus.NewInstance(statusType);
- //special case for invalid names where the DB entry contains
- //additional information in brackets e.g. "nom. inval. (sine basion.)"
- if(statusType.equals(NomenclaturalStatusType.INVALID())){
- Pattern pattern = Pattern.compile("\\((.*?)\\)");
- Matcher matcher = pattern.matcher(nomZusatzString);
- if (matcher.find()){
- status.setRuleConsidered(matcher.group(1));
- }
+ name.setGenusOrUninomial(ep1String);
+ if(CdmUtils.isNotBlank(ep2String)){
+ if(rank!=null && rank.isInfraGenericButNotSpeciesGroup()){
+ name.setInfraGenericEpithet(ep2String);
+ }
+ else{
+ name.setSpecificEpithet(ep2String);
}
- name.addStatus(status);
}
}
//hybrid
@@ -385,57 +378,86 @@ public class RedListGefaesspflanzenImportNames extends DbImportBase