ref #2380: improve implementation of Dto for use in taxonnavigator
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / ClassificationServiceImpl.java
index 530381116d602fb94373d2d50425cece15dfa91d..9de05cfb176b61c0770fefc6d907e0ff2d8d9a63 100644 (file)
@@ -34,7 +34,6 @@ import org.springframework.transaction.annotation.Transactional;
 import eu.etaxonomy.cdm.api.service.config.CreateHierarchyForClassificationConfigurator;
 import eu.etaxonomy.cdm.api.service.config.NodeDeletionConfigurator.ChildHandling;
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.dto.EntityDTO;
 import eu.etaxonomy.cdm.api.service.dto.GroupedTaxonDTO;
 import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
@@ -674,6 +673,7 @@ public class ClassificationServiceImpl extends IdentifiableServiceBase<Classific
 
 
     @Override
+    @Transactional
     public DeleteResult delete(UUID classificationUuid, TaxonDeletionConfigurator config){
         DeleteResult result = new DeleteResult();
         Classification classification = dao.findByUuid(classificationUuid);
@@ -685,12 +685,14 @@ public class ClassificationServiceImpl extends IdentifiableServiceBase<Classific
         if (!classification.hasChildNodes()){
             dao.delete(classification);
             result.addDeletedObject(classification);
+            return result;
         }
-        if (config.getTaxonNodeConfig().getChildHandling().equals(ChildHandling.DELETE) ){
+        if (config.getTaxonNodeConfig().getChildHandling().equals(ChildHandling.DELETE)){
             TaxonNode root = classification.getRootNode();
             result.includeResult(taxonNodeService.deleteTaxonNode(root, config));
             dao.delete(classification);
             result.addDeletedObject(classification);
+
         }