* @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
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,
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);
-
-
-
-
-
}
@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();
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());
@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
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());
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());