ref #9590 use boolean parameter newUuidForAcceptedTaxon instead of 2 different public...
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 11 May 2021 20:17:49 +0000 (22:17 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 11 May 2021 20:21:20 +0000 (22:21 +0200)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonService.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonServiceImpl.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TaxonServiceImplTest.java

index a8d63b85763109c0613b2cbf78c99e52ae931639..54d43c097e2d7d3236dc4b2a342f797051cb4323 100644 (file)
@@ -98,7 +98,9 @@ public interface ITaxonService
      * @param setNameInSource
      * @return
      */
-    public UpdateResult swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean setNameInSource);
+    public UpdateResult swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean setNameInSource, boolean newUuidForAcceptedTaxon);
+
+    public UpdateResult swapSynonymAndAcceptedTaxon(UUID synonymUUid, UUID acceptedTaxonUuid, boolean setNameInSource, boolean newUuidForAcceptedTaxon);
 
     /**
      * Changes a synonym into an accepted taxon and removes
@@ -927,20 +929,6 @@ public interface ITaxonService
             TaxonNode subtreeFilter, boolean includeEntity, TaxonTitleType titleType,
             Integer pageSize, Integer pageNumber, List<String> propertyPaths);
 
-    /**
-     * @param synonymUUid
-     * @param acceptedTaxonUuid
-     * @param setNameInSource
-     * @return
-     */
-    public UpdateResult swapSynonymAndAcceptedTaxon(UUID synonymUUid, UUID acceptedTaxonUuid, boolean setNameInSource);
-
-    /**
-     * @param taxonUuid
-     * @param config
-     * @param classificationUuid
-     * @return
-     */
     public DeleteResult deleteTaxon(UUID taxonUuid, TaxonDeletionConfigurator config, UUID classificationUuid);
 
        public UpdateResult moveFactualDateToAnotherTaxon(UUID fromTaxonUuid,
@@ -963,16 +951,4 @@ public interface ITaxonService
     public <S extends TaxonBase> Pager<S> page(Class<S> clazz, List<Restriction<?>> restrictions, Integer pageSize, Integer pageIndex,
             List<OrderHint> orderHints, List<String> propertyPaths, boolean includeUnpublished);
 
-    /**
-     * @param synonym
-     * @param acceptedTaxon
-     * @param setNameInSource
-     * @return
-     */
-    UpdateResult swapSynonymAndAcceptedTaxonNewUuid(Synonym synonym, Taxon acceptedTaxon, boolean setNameInSource);
-
-
-
-
-
 }
index a003200f736239db2e00293c7ba201defc4a2a83..4e838225d5ebcc9d9d8e456aab798172d874a9b8 100644 (file)
@@ -207,7 +207,15 @@ public class TaxonServiceImpl
 
     @Override
     @Transactional(readOnly = false)
-    public UpdateResult swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean setNameInSource){
+    public UpdateResult swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean setNameInSource, boolean newUuidForAcceptedTaxon){
+        if (newUuidForAcceptedTaxon){
+            return swapSynonymAndAcceptedTaxonNewUuid(synonym, acceptedTaxon, setNameInSource);
+        }else{
+            return swapSynonymAndAcceptedTaxon(synonym, acceptedTaxon, setNameInSource);
+        }
+    }
+
+    private UpdateResult swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon, boolean setNameInSource){
         UpdateResult result = new UpdateResult();
 //     acceptedTaxon.removeSynonym(synonym);
        TaxonName synonymName = synonym.getName();
@@ -362,11 +370,9 @@ public class TaxonServiceImpl
                return result;
     }
 
-    @Override
-    @Transactional(readOnly = false)
-    public UpdateResult swapSynonymAndAcceptedTaxonNewUuid(Synonym synonym, Taxon acceptedTaxon, boolean setNameInSource){
+    private UpdateResult swapSynonymAndAcceptedTaxonNewUuid(Synonym synonym, Taxon acceptedTaxon, boolean setNameInSource){
         UpdateResult result = new UpdateResult();
-      acceptedTaxon.removeSynonym(synonym);
+        acceptedTaxon.removeSynonym(synonym);
         TaxonName synonymName = synonym.getName();
         TaxonName taxonName = HibernateProxyHelper.deproxy(acceptedTaxon.getName());
 
@@ -3543,13 +3549,13 @@ public class TaxonServiceImpl
        @Override
        @Transactional(readOnly = false)
        public UpdateResult swapSynonymAndAcceptedTaxon(UUID synonymUUid,
-                       UUID acceptedTaxonUuid, boolean setNameInSource) {
+                       UUID acceptedTaxonUuid, boolean setNameInSource, boolean newUuidForAcceptedTaxon) {
                TaxonBase<?> base = this.load(synonymUUid);
                Synonym syn = HibernateProxyHelper.deproxy(base, Synonym.class);
                base = this.load(acceptedTaxonUuid);
                Taxon taxon = HibernateProxyHelper.deproxy(base, Taxon.class);
 
-               return this.swapSynonymAndAcceptedTaxon(syn, taxon, setNameInSource);
+               return this.swapSynonymAndAcceptedTaxon(syn, taxon, setNameInSource, newUuidForAcceptedTaxon);
        }
 
     @Override
index 63ff6e7fe5a7e9493a28733fcbb6fca89478461e..c0f5dea6db2b6cd1af77fbc54fdda50d92d4c7a4 100644 (file)
@@ -254,7 +254,7 @@ public class TaxonServiceImplTest extends CdmTransactionalIntegrationTest {
         createTestDataSet();
         synonym.setSec(ReferenceFactory.newArticle());
         service.saveOrUpdate(synonym);
-        UpdateResult result = service.swapSynonymAndAcceptedTaxon(synonym, taxWithSyn, true);
+        UpdateResult result = service.swapSynonymAndAcceptedTaxon(synonym, taxWithSyn, true, false);
 
         // find forces flush
         Taxon tax = (Taxon)service.find(result.getCdmEntity().getUuid());
@@ -277,7 +277,7 @@ public class TaxonServiceImplTest extends CdmTransactionalIntegrationTest {
         createTestDataSet();
         synonym.setSec(ReferenceFactory.newArticle());
         service.saveOrUpdate(synonym);
-        UpdateResult result = service.swapSynonymAndAcceptedTaxonNewUuid(synonym, taxWithSyn, true);
+        UpdateResult result = service.swapSynonymAndAcceptedTaxon(synonym, taxWithSyn, true, true);
 
         // find forces flush
         Taxon tax = (Taxon)service.find(result.getCdmEntity().getUuid());