ref #7854: add service method to merge a set of descriptionelements
authorKatja Luther <k.luther@bgbm.org>
Mon, 10 Dec 2018 16:15:43 +0000 (17:15 +0100)
committerKatja Luther <k.luther@bgbm.org>
Mon, 10 Dec 2018 16:21:04 +0000 (17:21 +0100)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IDescriptionService.java

index 7e1e2db7977be42361fb0f6342af838484f0c33d..5d6f3e77fb7826bccc9672df987bcd8c2c1299d8 100644 (file)
@@ -67,6 +67,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 +464,16 @@ public class DescriptionServiceImpl
         return descriptionElementDao.saveAll(descriptionElements);
     }
 
+    @Override
+    @Transactional(readOnly = false)
+    public List<MergeResult<DescriptionElementBase>> mergeDescriptionElements(Collection<DescriptionElementBase> descriptionElements, boolean returnTransientEntity) {
+        List<MergeResult<DescriptionElementBase>> mergedObjects = new ArrayList<MergeResult<DescriptionElementBase>>();
+        for(DescriptionElementBase obj : descriptionElements) {
+            mergedObjects.add(descriptionElementDao.merge(obj, returnTransientEntity));
+        }
+        return mergedObjects;
+    }
+
     /**
      * FIXME Candidate for harmonization
      * descriptionElementService.delete
index e1bddc844c0bc23e1b81bd1a518bc4c473d05294..075a3bc81c854a83e89b5daa0f81ff20ec9ea2a1 100644 (file)
@@ -37,6 +37,7 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.persistence.dao.initializer.IBeanInitializer;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.query.OrderHint;
 
@@ -608,4 +609,12 @@ public interface IDescriptionService extends IIdentifiableEntityService<Descript
      */
     public UpdateResult moveTaxonDescription(UUID descriptionUuid, UUID targetTaxonUuid);
 
+    /**
+     * @param descriptionElements
+     * @param returnTransientEntity
+     * @return
+     */
+    public List<MergeResult<DescriptionElementBase>> mergeDescriptionElements(Collection<DescriptionElementBase> descriptionElements,
+            boolean returnTransientEntity);
+
 }