add typedesignations of synonyms to list of specimen dtos
authorKatja <k.luther@bgbm.org>
Thu, 18 Jan 2024 14:28:36 +0000 (15:28 +0100)
committerKatja <k.luther@bgbm.org>
Thu, 18 Jan 2024 14:29:30 +0000 (15:29 +0100)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java

index aa05106a28aa8a937e67b1bf129c31a11b87d34b..07b837d41f327442e5149efc5e7eff6f2f8ea081 100644 (file)
@@ -541,7 +541,7 @@ public class OccurrenceServiceImpl
                         DerivedUnit derivedUnit = (DerivedUnit)unit;
                         boolean isAssociated = false;
                         for (DeterminationEvent determination:derivedUnit.getDeterminations()) {
-                               if (determination.getTaxonName() != null && determination.getTaxonName().equals(taxon.getName()) || taxon.equals(determination.getTaxon())){
+                               if (determination.getTaxonName() != null && determination.getTaxonName().equals(taxon.getName()) || taxon.equals(determination.getTaxon()) ){
                                        isAssociated = true;
                                        break;
                                }
@@ -557,7 +557,7 @@ public class OccurrenceServiceImpl
                             }
                         }
 
-                        for (TypeDesignationBase desc: taxon.getName().getTypeDesignations()) {
+                        for (TypeDesignationBase desc: taxon.getName().getHomotypicalGroup().getTypeDesignations()) {
                             if (desc instanceof SpecimenTypeDesignation) {
                                 if (((SpecimenTypeDesignation)desc).getTypeSpecimen().getUuid().equals(derivedUnit.getUuid())) {
                                     isAssociated = true;
@@ -566,6 +566,18 @@ public class OccurrenceServiceImpl
                             }
 
                         }
+                        for (TaxonName name: taxon.getSynonymNames()) {
+                            for (TypeDesignationBase desc :name.getHomotypicalGroup().getTypeDesignations()) {
+
+                                if (desc instanceof SpecimenTypeDesignation) {
+                                    if (((SpecimenTypeDesignation)desc).getTypeSpecimen().getUuid().equals(derivedUnit.getUuid())) {
+                                        isAssociated = true;
+                                        break;
+                                    }
+                                }
+
+                            }
+                        }
 
                         if (!isAssociated) {
                                continue;