X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/32b8966302f46f7bdd0e0b3f9a4d1724bb57a9ce..08183f9940eba2215352b890199303f20046713a:/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java index 7e1e2db797..b4b003adb2 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java @@ -25,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import eu.etaxonomy.cdm.api.service.dto.TaxonDistributionDTO; import eu.etaxonomy.cdm.api.service.pager.Pager; import eu.etaxonomy.cdm.api.service.pager.impl.AbstractPagerImpl; import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl; @@ -67,6 +68,7 @@ import eu.etaxonomy.cdm.persistence.dao.description.IFeatureTreeDao; import eu.etaxonomy.cdm.persistence.dao.description.IStatisticalMeasurementValueDao; import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao; import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonNodeDao; +import eu.etaxonomy.cdm.persistence.dto.MergeResult; import eu.etaxonomy.cdm.persistence.dto.TermDto; import eu.etaxonomy.cdm.persistence.query.OrderHint; import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy; @@ -463,6 +465,24 @@ public class DescriptionServiceImpl return descriptionElementDao.saveAll(descriptionElements); } + @Override + @Transactional(readOnly = false) + public List> mergeDescriptionElements(Collection descriptionElements, boolean returnTransientEntity) { + List> mergedObjects = new ArrayList(); + List toDelete = new ArrayList<>(); + for(TaxonDistributionDTO obj : descriptionElements) { + Iterator iterator = obj.getDescriptionsWrapper().getDescriptions().iterator(); + while (iterator.hasNext()){ + TaxonDescription desc = iterator.next(); + mergedObjects.add(dao.merge(desc, returnTransientEntity)); + } + + + } + + return mergedObjects; + } + /** * FIXME Candidate for harmonization * descriptionElementService.delete @@ -846,4 +866,5 @@ public class DescriptionServiceImpl } + }