ref #8754: implement delete method for descriptiveDataSet
authorKatja Luther <k.luther@bgbm.org>
Tue, 5 May 2020 08:22:38 +0000 (10:22 +0200)
committerKatja Luther <k.luther@bgbm.org>
Tue, 5 May 2020 08:26:59 +0000 (10:26 +0200)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptiveDataSetService.java

index 628de91cb5b28060209fb5f47fec4c118d17a8e8..ac28361c724123918ef635e82079ca51c83a7e93 100644 (file)
@@ -427,6 +427,30 @@ public class DescriptiveDataSetService
         return result;
     }
 
+    @Override
+    @Transactional(readOnly = false)
+    public DeleteResult delete(UUID datasetUuid){
+        DescriptiveDataSet dataSet = dao.load(datasetUuid);
+        DeleteResult result = new DeleteResult();
+        if (!dataSet.getDescriptions().isEmpty()){
+            Set<DescriptionBase> descriptions = new HashSet();;
+            for (DescriptionBase desc: dataSet.getDescriptions()){
+                descriptions.add(desc);
+            }
+            DeleteResult descriptionResult;
+            for (DescriptionBase desc: descriptions){
+                dataSet.removeDescription(desc);
+                descriptionResult = descriptionService.deleteDescription(desc);
+                result.includeResult(descriptionResult);
+            }
+
+
+        }
+        dao.delete(dataSet);
+        result.addDeletedObject(dataSet);
+        return result;
+    }
+
     @Override
     @Transactional(readOnly=false)
     public TaxonRowWrapperDTO createTaxonDescription(UUID dataSetUuid, UUID taxonNodeUuid, DescriptionType descriptionType){
@@ -733,6 +757,8 @@ public class DescriptiveDataSetService
             return DescriptiveDataSetService.this;
         }
 
+
+
     }
 
 }