moveTaxon() with uuids instead of objects as arguments
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / TaxonServiceImpl.java
index 6a9b51bde28f26912394eb207e158834a78b8fd9..c99e1ea04b252a37a6fa7a1ae695abbf495bf7d8 100644 (file)
@@ -347,7 +347,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
 \r
 \r
         // Switch groups\r
-        oldHomotypicalGroup.removeTypifiedName(synonymName);\r
+        oldHomotypicalGroup.removeTypifiedName(synonymName, false);\r
         newHomotypicalGroup.addTypifiedName(synonymName);\r
 \r
         //remove existing basionym relationships\r
@@ -684,12 +684,12 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         }\r
         if (configurator.isDoTaxaByCommonNames()) {\r
             \r
-            if(configurator.getPageSize() == null ){\r
+            //if(configurator.getPageSize() == null ){\r
                 List<UuidAndTitleCache<IdentifiableEntity>> commonNameResults = dao.getTaxaByCommonNameForEditor(configurator.getTitleSearchStringSqlized(), configurator.getClassification(), configurator.getMatchMode(), configurator.getNamedAreas());\r
                 if(commonNameResults != null){\r
                     results.addAll(commonNameResults);\r
                 }\r
-            }\r
+           // }\r
         }\r
         return results;\r
     }\r
@@ -1346,8 +1346,9 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
                 taxonSet.addAll(synonym.getAcceptedTaxa());\r
             }\r
             for (Taxon relatedTaxon : taxonSet){\r
-    //                 dao.deleteSynonymRelationships(synonym, relatedTaxon);\r
-                relatedTaxon.removeSynonym(synonym, config.isNewHomotypicGroupIfNeeded());\r
+               HibernateProxyHelper.deproxy(relatedTaxon, Taxon.class);\r
+                relatedTaxon.removeSynonym(synonym, false);\r
+                this.saveOrUpdate(relatedTaxon);\r
             }\r
             this.saveOrUpdate(synonym);\r
 \r
@@ -1364,7 +1365,11 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
                 //remove name if possible (and required)\r
                 if (name != null && config.isDeleteNameIfPossible()){\r
 \r
-                        nameService.delete(name, config.getNameDeletionConfig());\r
+                        DeleteResult nameDeleteresult = nameService.delete(name, config.getNameDeletionConfig());\r
+                        if (nameDeleteresult.isAbort()){\r
+                               result.addExceptions(nameDeleteresult.getExceptions());\r
+                               result.addUpdatedObject(name);\r
+                        }\r
 \r
                 }\r
 \r