}\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
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
@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
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