+ //for some reason simple cloning of the secundum source does not work if external links exist (throws exception because an OriginalSourceBase_id in an AuditTable (probably OriginalSourceBase_ExternalLink) becomes null)
+
+ //remember oldAcc secSource info
+ Reference oldAccRef = newTaxon.getSec();
+ String oldAccMicroRef = newTaxon.getSecMicroReference();
+ Set<ExternalLink> oldAccLinks = new HashSet<>();
+ if (newTaxon.getSecSource()!= null){
+ for (ExternalLink link: newTaxon.getSecSource().getLinks()){
+ oldAccLinks.add(link.clone());
+ }
+ }
+
+ if (newSyn != null ){
+ //adapt new taxon secSource info
+ newTaxon.setSec(newSyn.getSec());
+ newTaxon.setSecMicroReference(newSyn.getSecMicroReference());
+ if (newTaxon.getSecSource() != null){
+ newTaxon.getSecSource().getLinks().clear();
+ if (newSyn.getSecSource() != null){
+ for (ExternalLink link: newSyn.getSecSource().getLinks()){
+ newTaxon.getSecSource().addLink(link.clone());
+ }
+ }
+ }
+
+ //adapt new synonym secSource info
+ newSyn.setSec(oldAccRef);
+ newSyn.setSecMicroReference(oldAccMicroRef);
+ if (newSyn.getSecSource()!= null){
+ newSyn.getSecSource().getLinks().clear();
+ for (ExternalLink link: oldAccLinks){
+ newSyn.getSecSource().addLink(link);
+ }
+ }
+ }
+
+ List<TaxonBase> mergeList = new ArrayList<>();
+ mergeList.add(newTaxon);
+ mergeList.add(newSyn);
+ */
+//=======
+ UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource, false, secHandling, newSecAcc, newSecSyn);//TODO
+//>>>>>>> Stashed changes