- //hybrid
- if(CdmUtils.isNotBlank(hybString)){
- if(hybString.equals(RedListUtil.HYB_X)){
- name.setBinomHybrid(true);
- }
- else if(hybString.equals(RedListUtil.HYB_G)){
- name.setMonomHybrid(true);
+ }
+ //hybrid
+ if(CdmUtils.isNotBlank(hybString)){
+ //save hybrid formula
+ if(CdmUtils.isNotBlank(formelString)){
+ Annotation annotation = Annotation.NewDefaultLanguageInstance(formelString);
+ annotation.setAnnotationType(AnnotationType.TECHNICAL());
+ name.addAnnotation(annotation);
+ }
+ //more than two hybrids not yet handled by name parser
+ //TODO: use parser when implemented to fully support hybrids
+ if(taxNameString.split(RedListUtil.HYB_SIGN).length>2){
+ name = BotanicalName.NewInstance(rank);
+ name.setTitleCache(taxNameString, true);
+ }
+ else if(hybString.equals(RedListUtil.HYB_X)){
+ name.setBinomHybrid(true);
+ }
+ else if(hybString.equals(RedListUtil.HYB_G)){
+ name.setMonomHybrid(true);
+ }
+ else if(hybString.equals(RedListUtil.HYB_XF)){
+ name.setHybridFormula(true);
+ if(ep1String.contains(RedListUtil.HYB_SIGN)){
+ RedListUtil.logMessage(id, "EPI1 has hybrid signs but with flag: "+RedListUtil.HYB_XF, logger);