// $Id$\r
/**\r
* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
* http://www.e-taxonomy.eu\r
-* \r
+*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
*/\r
\r
import org.apache.log4j.Logger;\r
\r
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;\r
+import eu.etaxonomy.cdm.api.service.ITaxonService;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
\r
/**\r
* This class is used to configure taxon node deletion.\r
- * \r
+ * It is initialized with the following default settings:\r
+ * <ul>\r
+ * <li> deleteSynonymRelations: <b>true</b></li>\r
+ * <li> deleteSynonymsIfPossible: <b>true</b></li>\r
+ * <li> deleteMisappliedNamesAndInvalidDesignations: <b>true</b></li>\r
+ * <li> deleteNameIfPossible: <b>true</b></li>\r
+ * <li> nameDeletionConfig: see {@link NameDeletionConfigurator}</li>\r
+ * <li> taxonNodeConfig: see {@link TaxonNodeDeletionConfigurator}</li>\r
+ * <li> deleteTaxonNodes: <b>true</b></li>\r
+ * <li> deleteTaxonRelationships: <b>true</b>; </li>\r
+ * <li> deleteDescriptions: <b>true</b></li>\r
+ * <li> deleteInAllClassifications: <b>true</b></li>\r
+ * </ul>\r
+ *\r
* @see ITaxonService#deleteTaxon(eu.etaxonomy.cdm.model.taxon.Taxon)\r
- * \r
+ *\r
* @author a.mueller\r
* @date 09.11.2011\r
*\r
*/\r
public class TaxonDeletionConfigurator extends TaxonBaseDeletionConfigurator {\r
- @SuppressWarnings("unused")\r
- private static final Logger logger = Logger.getLogger(TaxonDeletionConfigurator.class);\r
-\r
- private boolean deleteSynonymRelations = true;\r
- \r
- private boolean deleteSynonymsIfPossible = true;\r
- \r
- private boolean deleteMisappliedNamesAndInvalidDesignations = true;\r
-\r
- private boolean deleteNameIfPossible = true;\r
- \r
- private NameDeletionConfigurator nameDeletionConfig = new NameDeletionConfigurator();\r
- \r
- \r
- private TaxonNodeDeletionConfigurator taxonNodeConfig = new TaxonNodeDeletionConfigurator();\r
-\r
- \r
- private boolean deleteTaxonNodes = true;\r
- \r
- private boolean deleteTaxonRelationships = true; \r
- \r
- private boolean deleteDescriptions = true;\r
- \r
- private boolean deleteInAllClassifications = true;\r
+ @SuppressWarnings("unused")\r
+ private static final Logger logger = Logger.getLogger(TaxonDeletionConfigurator.class);\r
+\r
+ private boolean deleteSynonymRelations = true;\r
+\r
+ private boolean deleteSynonymsIfPossible = true;\r
+\r
+ private boolean deleteMisappliedNamesAndInvalidDesignations = true;\r
+\r
+ // private boolean deleteNameIfPossible = true;\r
+\r
+ //private NameDeletionConfigurator nameDeletionConfig = new NameDeletionConfigurator();\r
+\r
+\r
+ private TaxonNodeDeletionConfigurator taxonNodeConfig = new TaxonNodeDeletionConfigurator();\r
+\r
+\r
+ private boolean deleteTaxonNodes = true;\r
+\r
+ private boolean deleteTaxonRelationships = true;\r
+\r
+ private boolean deleteDescriptions = true;\r
+\r
+ private boolean deleteInAllClassifications = false;\r
+\r
+\r
\r
\r
public boolean isDeleteInAllClassifications() {\r
- return deleteInAllClassifications;\r
- }\r
-\r
-\r
- public void setDeleteInAllClassifications(boolean deleteInAllClassifications) {\r
- this.deleteInAllClassifications = deleteInAllClassifications;\r
- }\r
-\r
- /**\r
- * If true the taxons name will be deleted if this is possible.\r
- * It is possible if the name is not linked in a way that it can not be deleted.\r
- * This depends also on the {@link NameDeletionConfigurator}\r
- * @see #getNameDeletionConfig()\r
- * @return\r
- */\r
- public boolean isDeleteNameIfPossible() {\r
- return deleteNameIfPossible;\r
- }\r
-\r
- public void setDeleteNameIfPossible(boolean deleteNameIfPossible) {\r
- this.deleteNameIfPossible = deleteNameIfPossible;\r
- }\r
-\r
-\r
- /**\r
- * The configurator for name deletion. Only evaluated if {@link #isDeleteNameIfPossible()}\r
- * is <code>true</code>.\r
- * @see NameDeletionConfigurator\r
- * @see #isDeleteNameIfPossible()\r
- * @see #isDeleteSynonymsIfPossible()\r
- * @return\r
- */\r
- public NameDeletionConfigurator getNameDeletionConfig() {\r
- return nameDeletionConfig;\r
- }\r
-\r
- public void setNameDeletionConfig(NameDeletionConfigurator nameDeletionConfig) {\r
- this.nameDeletionConfig = nameDeletionConfig;\r
- }\r
-\r
- \r
- /**\r
- * If <code>true</code> related taxa with {@link TaxonRelationshipType} misappliedName or invalidDesignation will be removed if possible \r
- * It is possible to remove a related taxon if it is not used in any other context, e.g. any \r
- * other @link {@link TaxonRelationship} or in another @link {@link Classification}\r
- * @return\r
- */\r
- public boolean isDeleteMisappliedNamesAndInvalidDesignations() {\r
- return deleteMisappliedNamesAndInvalidDesignations;\r
- }\r
-\r
-\r
- public void setDeleteMisappliedNamesAndInvalidDesignations(\r
- boolean deleteMisappliedNamesAndInvalidDesignations) {\r
- this.deleteMisappliedNamesAndInvalidDesignations = deleteMisappliedNamesAndInvalidDesignations;\r
- }\r
- \r
-\r
-\r
- \r
- /**\r
- * The configurator for node deletion. Only evaluated if {@link #isDeleteNode()}\r
- * is <code>true</code>.\r
- * @see TaxonNodeDeletionConfigurator\r
- * @see #isDeleteNode()\r
- * @see #isDeleteSynonymsIfPossible()\r
- * @return\r
- */\r
- \r
- public TaxonNodeDeletionConfigurator getTaxonNodeConfig() {\r
- return taxonNodeConfig;\r
- }\r
-\r
- public void setTaxonNodeConfig(TaxonNodeDeletionConfigurator taxonNodeConfig) {\r
- this.taxonNodeConfig = taxonNodeConfig;\r
- }\r
-\r
-\r
- /**\r
- * \r
- * If <code>true</code> all {@link SynonymRelationship relations to synonyms} will be \r
- * removed.\r
- * Synonyms itself will be removed depending on {@link #deleteSynonymsIfPossible}.\r
- * @return\r
- */\r
- public boolean isDeleteSynonymRelations() {\r
- return deleteSynonymRelations;\r
- }\r
-\r
- public void setDeleteSynonymRelations(boolean deleteSynonymRelations) {\r
- this.deleteSynonymRelations = deleteSynonymRelations;\r
- }\r
-\r
- \r
- /**\r
- * If <code>true</code> synonyms will be removed if possible but only if {@link #isDeleteSynonymRelations()}\r
- * is also <code>true</code>.\r
- * It is possible to remove a synonym if it is not used in any other context, e.g. any \r
- * other @link {@link SynonymRelationship}\r
- * @return\r
- */\r
- public boolean isDeleteSynonymsIfPossible() {\r
- return deleteSynonymsIfPossible;\r
- }\r
-\r
- public void setDeleteSynonymsIfPossible(boolean deleteSynonymsIfPossible) {\r
- this.deleteSynonymsIfPossible = deleteSynonymsIfPossible;\r
- }\r
-\r
-\r
-\r
- /**\r
- * If <code>true</code> all {@link TaxonNode taxon nodes} this taxon belongs to\r
- * are deleted. If <code>false</code> an exception is thrown if this taxon belongs\r
- * to a taxon node.\r
- * @return\r
- */\r
- public boolean isDeleteTaxonNodes() {\r
- return deleteTaxonNodes;\r
- }\r
- \r
- public void setDeleteTaxonNodes(boolean deleteTaxonNodes) {\r
- this.deleteTaxonNodes = deleteTaxonNodes;\r
- }\r
-\r
- /**\r
- * If <code>true</code> all {@link TaxonRelationship taxon relationships} linked to \r
- * the taxon are removed.\r
- */\r
- // TODO how to handle missapllied names\r
- public boolean isDeleteTaxonRelationships() {\r
- return deleteTaxonRelationships;\r
- }\r
- \r
- public void setDeleteTaxonRelationships(boolean deleteTaxonRelationships) {\r
- this.deleteTaxonRelationships = deleteTaxonRelationships;\r
- }\r
-\r
- /**\r
- * If <code>true</code> all {@link TaxonDescription taxon descriptions} linked to \r
- * the taxon are deleted.\r
- */\r
- public boolean isDeleteDescriptions() {\r
- return deleteDescriptions;\r
- }\r
-\r
- public void setDeleteDescriptions(boolean deleteDescriptions) {\r
- this.deleteDescriptions = deleteDescriptions;\r
- }\r
-\r
- \r
- \r
- \r
+ return deleteInAllClassifications;\r
+ }\r
+\r
+\r
+ public void setDeleteInAllClassifications(boolean deleteInAllClassifications) {\r
+ this.deleteInAllClassifications = deleteInAllClassifications;\r
+ }\r
+\r
+\r
+\r
+\r
+ /**\r
+ * If <code>true</code> related taxa with {@link TaxonRelationshipType} misappliedName or invalidDesignation will be removed if possible\r
+ * It is possible to remove a related taxon if it is not used in any other context, e.g. any\r
+ * other @link {@link TaxonRelationship} or in another @link {@link Classification}\r
+ * @return\r
+ */\r
+ public boolean isDeleteMisappliedNamesAndInvalidDesignations() {\r
+ return deleteMisappliedNamesAndInvalidDesignations;\r
+ }\r
+\r
+\r
+ public void setDeleteMisappliedNamesAndInvalidDesignations(\r
+ boolean deleteMisappliedNamesAndInvalidDesignations) {\r
+ this.deleteMisappliedNamesAndInvalidDesignations = deleteMisappliedNamesAndInvalidDesignations;\r
+ }\r
+\r
+\r
+\r
+\r
+ /**\r
+ * The configurator for node deletion. Only evaluated if {@link #isDeleteNode()}\r
+ * is <code>true</code>.\r
+ * @see TaxonNodeDeletionConfigurator\r
+ * @see #isDeleteNode()\r
+ * @see #isDeleteSynonymsIfPossible()\r
+ * @return\r
+ */\r
+\r
+ public TaxonNodeDeletionConfigurator getTaxonNodeConfig() {\r
+ return taxonNodeConfig;\r
+ }\r
+\r
+ public void setTaxonNodeConfig(TaxonNodeDeletionConfigurator taxonNodeConfig) {\r
+ this.taxonNodeConfig = taxonNodeConfig;\r
+ }\r
+\r
+\r
+ /**\r
+ *\r
+ * If <code>true</code> all {@link SynonymRelationship relations to synonyms} will be\r
+ * removed.\r
+ * Synonyms itself will be removed depending on {@link #deleteSynonymsIfPossible}.\r
+ * @return\r
+ */\r
+ public boolean isDeleteSynonymRelations() {\r
+ return deleteSynonymRelations;\r
+ }\r
+\r
+ public void setDeleteSynonymRelations(boolean deleteSynonymRelations) {\r
+ this.deleteSynonymRelations = deleteSynonymRelations;\r
+ }\r
+\r
+\r
+ /**\r
+ * If <code>true</code> synonyms will be removed if possible but only if {@link #isDeleteSynonymRelations()}\r
+ * is also <code>true</code>.\r
+ * It is possible to remove a synonym if it is not used in any other context, e.g. any\r
+ * other @link {@link SynonymRelationship}\r
+ * @return\r
+ */\r
+ public boolean isDeleteSynonymsIfPossible() {\r
+ return deleteSynonymsIfPossible;\r
+ }\r
+\r
+ public void setDeleteSynonymsIfPossible(boolean deleteSynonymsIfPossible) {\r
+ this.deleteSynonymsIfPossible = deleteSynonymsIfPossible;\r
+ }\r
+\r
+\r
+\r
+ /**\r
+ * If <code>true</code> all {@link TaxonNode taxon nodes} this taxon belongs to\r
+ * are deleted. If <code>false</code> an exception is thrown if this taxon belongs\r
+ * to a taxon node.\r
+ * @return\r
+ */\r
+ public boolean isDeleteTaxonNodes() {\r
+ return deleteTaxonNodes;\r
+ }\r
+\r
+ public void setDeleteTaxonNodes(boolean deleteTaxonNodes) {\r
+ this.deleteTaxonNodes = deleteTaxonNodes;\r
+ }\r
+\r
+ /**\r
+ * If <code>true</code> all {@link TaxonRelationship taxon relationships} linked to\r
+ * the taxon are removed.\r
+ */\r
+ // TODO how to handle missapllied names\r
+ public boolean isDeleteTaxonRelationships() {\r
+ return deleteTaxonRelationships;\r
+ }\r
+\r
+ public void setDeleteTaxonRelationships(boolean deleteTaxonRelationships) {\r
+ this.deleteTaxonRelationships = deleteTaxonRelationships;\r
+ }\r
+\r
+ /**\r
+ * If <code>true</code> all {@link TaxonDescription taxon descriptions} linked to\r
+ * the taxon are deleted.\r
+ */\r
+ public boolean isDeleteDescriptions() {\r
+ return deleteDescriptions;\r
+ }\r
+\r
+ public void setDeleteDescriptions(boolean deleteDescriptions) {\r
+ this.deleteDescriptions = deleteDescriptions;\r
+ }\r
+\r
+\r
+\r
+\r
}\r