3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.api
.service
.config
;
12 import org
.apache
.log4j
.Logger
;
14 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
15 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
16 import eu
.etaxonomy
.cdm
.model
.taxon
.SynonymRelationship
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
18 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonRelationship
;
21 * This class is used to configure taxon node deletion.
23 * @see ITaxonNodeService#delete(eu.etaxonomy.cdm.model.taxon.TaxonNode)
29 public class TaxonDeletionConfigurator
extends DeleteConfiguratorBase
{
30 @SuppressWarnings("unused")
31 private static final Logger logger
= Logger
.getLogger(TaxonDeletionConfigurator
.class);
33 private boolean deleteSynonymRelations
= true;
35 private boolean deleteSynonymsIfPossible
= true;
37 private boolean deleteNameIfPossible
= true;
39 private NameDeletionConfigurator nameDeletionConfig
= new NameDeletionConfigurator();
41 private boolean deleteTaxonNodes
= false;
43 private boolean deleteTaxonRelationships
= false;
45 private boolean deleteDescriptions
= true;
49 * If true the taxons name will be deleted if this is possible.
50 * It is possible if the name is not linked in a way that it can not be deleted.
51 * This depends also on the {@link NameDeletionConfigurator}
52 * @see #getNameDeletionConfig()
55 public boolean isDeleteNameIfPossible() {
56 return deleteNameIfPossible
;
59 public void setDeleteNameIfPossible(boolean deleteNameIfPossible
) {
60 this.deleteNameIfPossible
= deleteNameIfPossible
;
65 * The configurator for name deletion. Only evaluated if {@link #isDeleteNameIfPossible()}
66 * is <code>true</code>.
67 * @see NameDeletionConfigurator
68 * @see #isDeleteNameIfPossible()
69 * @see #isDeleteSynonymsIfPossible()
72 public NameDeletionConfigurator
getNameDeletionConfig() {
73 return nameDeletionConfig
;
76 public void setNameDeletionConfig(NameDeletionConfigurator nameDeletionConfig
) {
77 this.nameDeletionConfig
= nameDeletionConfig
;
83 * If <code>true</code> all {@link SynonymRelationship relations to synonyms} will be
85 * Synonyms itself will be removed depending on {@link #deleteSynonymsIfPossible}.
88 public boolean isDeleteSynonymRelations() {
89 return deleteSynonymRelations
;
92 public void setDeleteSynonymRelations(boolean deleteSynonymRelations
) {
93 this.deleteSynonymRelations
= deleteSynonymRelations
;
98 * If <code>true</code> synonyms will be removed if possible but only if {@link #isDeleteSynonymRelations()}
99 * is also <code>true</code>.
100 * It is possible to remove a synonym if it is not used in any other context, e.g. any
101 * other @link {@link SynonymRelationship}
104 public boolean isDeleteSynonymsIfPossible() {
105 return deleteSynonymsIfPossible
;
108 public void setDeleteSynonymsIfPossible(boolean deleteSynonymsIfPossible
) {
109 this.deleteSynonymsIfPossible
= deleteSynonymsIfPossible
;
115 * If <code>true</code> all {@link TaxonNode taxon nodes} this taxon belongs to
116 * are deleted. If <code>false</code> an exception is thrown if this taxon belongs
120 public boolean isDeleteTaxonNodes() {
121 return deleteTaxonNodes
;
124 public void setDeleteTaxonNodes(boolean deleteTaxonNodes
) {
125 this.deleteTaxonNodes
= deleteTaxonNodes
;
129 * If <code>true</code> all {@link TaxonRelationship taxon relationships} linked to
130 * the taxon are removed.
132 // TODO how to handle missapllied names
133 public boolean isDeleteTaxonRelationships() {
134 return deleteTaxonRelationships
;
137 public void setDeleteTaxonRelationships(boolean deleteTaxonRelationships
) {
138 this.deleteTaxonRelationships
= deleteTaxonRelationships
;
142 * If <code>true</code> all {@link TaxonDescription taxon descriptions} linked to
143 * the taxon are deleted.
145 public boolean isDeleteDescriptions() {
146 return deleteDescriptions
;
149 public void setDeleteDescriptions(boolean deleteDescriptions
) {
150 this.deleteDescriptions
= deleteDescriptions
;