From f783478fcdb98ce0524be2d122553fb5ce88df3a Mon Sep 17 00:00:00 2001 From: "n.hoffmann" Date: Fri, 12 Jun 2009 12:25:38 +0000 Subject: [PATCH] fixes #727 --- taxeditor-navigation/plugin.xml | 4 +- .../operations/CreateChildTaxonOperation.java | 3 +- .../SwapSynonymAndAcceptedOperation.java | 29 ++++---------- .../SwapSynonymAndAcceptedOperationTest.java | 40 +++++++++---------- 4 files changed, 28 insertions(+), 48 deletions(-) diff --git a/taxeditor-navigation/plugin.xml b/taxeditor-navigation/plugin.xml index 6d2a40bcf..22cc0e528 100644 --- a/taxeditor-navigation/plugin.xml +++ b/taxeditor-navigation/plugin.xml @@ -27,9 +27,9 @@ diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateChildTaxonOperation.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateChildTaxonOperation.java index 072f8d936..21b99e8c6 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateChildTaxonOperation.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateChildTaxonOperation.java @@ -30,8 +30,7 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; */ public class CreateChildTaxonOperation extends AbstractPostOperation { - private static final Logger logger = Logger - .getLogger(CreateChildTaxonOperation.class); + private static final Logger logger = Logger.getLogger(CreateChildTaxonOperation.class); private TaxonNameBase newTaxonName; diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SwapSynonymAndAcceptedOperation.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SwapSynonymAndAcceptedOperation.java index f963aa615..5d87fa040 100644 --- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SwapSynonymAndAcceptedOperation.java +++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/SwapSynonymAndAcceptedOperation.java @@ -16,12 +16,11 @@ import org.eclipse.core.commands.operations.IUndoContext; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import eu.etaxonomy.cdm.model.name.TaxonNameBase; import eu.etaxonomy.cdm.model.taxon.Synonym; +import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType; import eu.etaxonomy.cdm.model.taxon.Taxon; -import eu.etaxonomy.taxeditor.model.SynonymUtil; +import eu.etaxonomy.taxeditor.store.CdmStore; /** * @author n.hoffmann @@ -33,8 +32,8 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostOperation { .getLogger(SwapSynonymAndAcceptedOperation.class); private Synonym synonym; - private Taxon newTaxon; - private TaxonNameBase oldTaxonName; + // TODO store the old relationship for undo reasons + private SynonymRelationshipType synonymRelationshipType; /** * @param label @@ -47,7 +46,6 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostOperation { super("test swap", undoContext, taxon, postOperationEnabled); this.synonym = synonym; - } /* (non-Javadoc) @@ -56,16 +54,10 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostOperation { @Override public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { - -// Taxon parentTaxon = taxon.getTaxonomicParent(); - oldTaxonName = taxon.getName(); - newTaxon = SynonymUtil.swapSynonymAndAccepted(synonym, taxon); - -// newTaxon.setTaxonomicParent(parentTaxon, null, null); - - // do not perform postExecution - return Status.OK_STATUS; + CdmStore.getTaxonService().makeSynonymAcceptedTaxon(synonym, taxon, null); + + return postExecute(taxon); } /* (non-Javadoc) @@ -87,11 +79,4 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostOperation { logger.error("Not yet implemented"); return null; } - - /** - * @return the newTaxon - */ - public Taxon getNewTaxon() { - return newTaxon; - } } \ No newline at end of file diff --git a/taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/SwapSynonymAndAcceptedOperationTest.java b/taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/SwapSynonymAndAcceptedOperationTest.java index 0e141c687..f12beae03 100644 --- a/taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/SwapSynonymAndAcceptedOperationTest.java +++ b/taxeditor-store/src/test/java/eu/etaxonomy/taxeditor/store/operations/SwapSynonymAndAcceptedOperationTest.java @@ -40,7 +40,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat private static AbstractPostOperation operation; - private static Taxon oldTaxon; + private static Taxon taxon; private static Taxon parentTaxon; @@ -75,18 +75,18 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat // Create the original accepted taxon oldTaxonName = NonViralName.NewInstance(null); - oldTaxon = Taxon.NewInstance(oldTaxonName, null); + taxon = Taxon.NewInstance(oldTaxonName, null); // Create its parent taxon parentTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null); - parentTaxon.addTaxonomicChild(oldTaxon, null, null); + parentTaxon.addTaxonomicChild(taxon, null, null); // Give it a child taxon childTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null); - childTaxon.setTaxonomicParent(oldTaxon, null, null); + childTaxon.setTaxonomicParent(taxon, null, null); // Create a homotypic synonym for the accepted taxon - oldTaxon.addHomotypicSynonymName(NonViralName.NewInstance(null), null, null); + taxon.addHomotypicSynonymName(NonViralName.NewInstance(null), null, null); // homotypicSynonym = Synonym.NewInstance(NonViralName.NewInstance(null), null); // HomotypicalGroup acceptedHomotypicalGroup = HomotypicalGroup.NewInstance(); // acceptedHomotypicalGroup.addTypifiedName(oldTaxon.getName()); @@ -98,27 +98,25 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat // oldTaxon.addS .addHeterotypicSynonym(oldHeterotypicSynonym, null, null); heteroypicalGroup = HomotypicalGroup.NewInstance(); heteroypicalGroup.addTypifiedName(oldHeterotypicSynonym.getName()); - oldTaxon.addSynonym(oldHeterotypicSynonym, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF()); + taxon.addSynonym(oldHeterotypicSynonym, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF()); // Create a misapplication misapplication = Taxon.NewInstance(NonViralName.NewInstance(null), null); - oldTaxon.addMisappliedName(misapplication, null, null); + taxon.addMisappliedName(misapplication, null, null); // Create a concept relation concept = Taxon.NewInstance(NonViralName.NewInstance(null), null); conceptRelationshipType = new TaxonRelationshipType(); - concept.addTaxonRelation(oldTaxon, conceptRelationshipType, null, null); + concept.addTaxonRelation(taxon, conceptRelationshipType, null, null); // Create a description description = TaxonDescription.NewInstance(); - oldTaxon.addDescription(description); + taxon.addDescription(description); operation = new SwapSynonymAndAcceptedOperation - (null, undoContext, oldTaxon, oldHeterotypicSynonym, postOperation); + (null, undoContext, taxon, oldHeterotypicSynonym, postOperation); } - private Taxon newTaxon; - /** * Test method for {@link eu.etaxonomy.taxeditor.operations.ChangeHomotypicGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}. @@ -128,29 +126,27 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat public void testExecute() throws ExecutionException { operation.execute(null, null); - newTaxon = ((SwapSynonymAndAcceptedOperation) operation).getNewTaxon(); - // New taxon has correct name? - Assert.assertEquals(newTaxon.getName(), oldSynonymName); + Assert.assertEquals(taxon.getName(), oldSynonymName); // New taxon has correct parent? - Assert.assertEquals(newTaxon.getTaxonomicParent(), parentTaxon); + Assert.assertEquals(taxon.getTaxonomicParent(), parentTaxon); // New taxon has correct child? - Assert.assertTrue(newTaxon.getTaxonomicChildren().contains(childTaxon)); + Assert.assertTrue(taxon.getTaxonomicChildren().contains(childTaxon)); // New taxon has 2 synonyms? - Assert.assertEquals(newTaxon.getSynonyms().size(), 2); + Assert.assertEquals(taxon.getSynonyms().size(), 2); // New taxon has a synonym with the name of the previous accepted taxon? - Assert.assertTrue(newTaxon.getSynonymNames().contains(oldTaxonName)); + Assert.assertTrue(taxon.getSynonymNames().contains(oldTaxonName)); // New taxon has misapplication? - Assert.assertTrue(newTaxon.getMisappliedNames().contains(misapplication)); + Assert.assertTrue(taxon.getMisappliedNames().contains(misapplication)); // New taxon has 1 concept relation? int conceptRelCount = 0; - for (TaxonRelationship relation : newTaxon.getTaxonRelations()) { + for (TaxonRelationship relation : taxon.getTaxonRelations()) { if (relation.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR()) || relation.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) { continue; @@ -160,7 +156,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat Assert.assertEquals(conceptRelCount, 1); // New taxon has description? - newTaxon.getDescriptions().contains(description); + taxon.getDescriptions().contains(description); } /** -- 2.34.1