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