merge-update from trunk
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / TaxonServiceImpl.java
index 9fef26c51341845786f5157dd18b1e621c7b4cd9..dcb0b8f27907c7f3b87a3338218bef84210690a9 100644 (file)
@@ -1180,10 +1180,10 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
                                 }\r
                             }\r
                         config.getTaxonNodeConfig().setDeleteTaxon(false);\r
-                        List<UUID> deletedNodes = nodeService.deleteTaxonNodes(nodesList, config);\r
-                        if (deletedNodes.isEmpty() && !nodesList.isEmpty()){\r
-                                result.setError();\r
-                             result.addException(new Exception("There are an error in deleting the taxon nodes."));\r
+                        DeleteResult resultNodes = nodeService.deleteTaxonNodes(nodesList, config);\r
+                        if (!resultNodes.isOk()){\r
+                               result.addExceptions(resultNodes.getExceptions());\r
+                               result.setStatus(resultNodes.getStatus());\r
                         }\r
                     }\r
                     if (!success){\r
@@ -1207,7 +1207,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
                     if ((taxon.getTaxonNodes() == null || taxon.getTaxonNodes().size()== 0) && name != null ){\r
                         taxon = (Taxon) HibernateProxyHelper.deproxy(taxon);\r
                         name.removeTaxonBase(taxon);\r
-                        nameService.merge(name);\r
+                        nameService.saveOrUpdate(name);\r
                         DeleteResult nameResult = new DeleteResult();\r
 \r
                         nameResult = nameService.delete(name, config.getNameDeletionConfig());\r
@@ -3077,7 +3077,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     @Override\r
     public List<String> isDeletable(TaxonBase taxonBase, DeleteConfiguratorBase config){\r
         List<String> result = new ArrayList<String>();\r
-        Set<CdmBase> references = commonService.getReferencingObjects(taxonBase);\r
+        Set<CdmBase> references = commonService.getReferencingObjectsForDeletion(taxonBase);\r
         if (taxonBase instanceof Taxon){\r
             TaxonDeletionConfigurator taxonConfig = (TaxonDeletionConfigurator) config;\r
             result = isDeletableForTaxon(references, taxonConfig);\r
@@ -3092,7 +3092,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         String message;\r
         List<String> result = new ArrayList<String>();\r
         for (CdmBase ref: references){\r
-            if (!(ref instanceof SynonymRelationship || ref instanceof Taxon || ref instanceof TaxonNameBase)){\r
+            if (!(ref instanceof SynonymRelationship || ref instanceof Taxon || ref instanceof TaxonNameBase )){\r
                 message = "The Synonym can't be deleted as long as it is referenced by " + ref.getClass().getSimpleName() + " with id "+ ref.getId();\r
                 result.add(message);\r
             }\r