remove imports
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / name / TypeDesignationStatusBase.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.model.name;
11
12 import javax.persistence.Entity;
13 import javax.xml.bind.annotation.XmlAccessType;
14 import javax.xml.bind.annotation.XmlAccessorType;
15 import javax.xml.bind.annotation.XmlSeeAlso;
16 import javax.xml.bind.annotation.XmlType;
17
18 import org.apache.log4j.Logger;
19 import org.hibernate.envers.Audited;
20 import org.hibernate.search.annotations.Indexed;
21
22 import eu.etaxonomy.cdm.model.common.OrderedTermBase;
23
24 /**
25 * The class representing status (categories) of {@link SpecimenTypeDesignation specimen type designations}
26 * for a {@link TaxonNameBase taxon name} or a set of them. Within this set {@link NameRelationshipType#BASIONYM() basionyms}
27 * or {@link NameRelationshipType#REPLACED_SYNONYM() replaced synonyms}, in case of reclassifications,
28 * will be here referred as "type-bringing" taxon names.
29 * <P>
30 * The different status indicate whether the {@link eu.etaxonomy.cdm.model.occurrence.Specimen specimens} used as types
31 * in a designation are duplicates, replacements, related specimens etc.
32 * <P>
33 * A standard (ordered) list of type designation status instances will be
34 * automatically created as the project starts. But this class allows to extend
35 * this standard list by creating new instances of additional type designation
36 * status if needed.
37 * <P>
38 * This class corresponds to: <ul>
39 * <li> NomencalturalTypeTypeTerm according to the TDWG ontology
40 * <li> NomenclaturalTypeStatusOfUnitsEnum according to the TCS
41 * </ul>
42 *
43 * @author m.doering
44 * @version 1.0
45 * @created 08-Nov-2007 13:07:00
46 */
47 @XmlAccessorType(XmlAccessType.FIELD)
48 @XmlType(name = "TypeDesignationStatusBase")
49 @XmlSeeAlso({
50 NameTypeDesignationStatus.class,
51 SpecimenTypeDesignationStatus.class
52 })
53 @Entity
54 @Indexed(index = "eu.etaxonomy.cdm.model.common.DefinedTermBase")
55 @Audited
56 public abstract class TypeDesignationStatusBase<T extends TypeDesignationStatusBase<?>> extends OrderedTermBase<T> {
57 static Logger logger = Logger.getLogger(TypeDesignationStatusBase.class);
58
59 // ************* CONSTRUCTORS *************/
60 /**
61 * Class constructor: creates a new empty type designation status instance.
62 *
63 * @see #NameTypeDesignationStatus(String, String, String)
64 * @see #SpecimenTypeDesignationStatus(String, String, String)
65 */
66 public TypeDesignationStatusBase() {
67 }
68
69
70 /**
71 * Class constructor: creates an additional type designation status instance
72 * with a description (in the {@link eu.etaxonomy.cdm.model.common.Language#DEFAULT() default language}), a label
73 * and a label abbreviation.
74 *
75 * @param term the string (in the default language) describing the
76 * new type designation status to be created
77 * @param label the string identifying the new type designation
78 * status to be created
79 * @param labelAbbrev the string identifying (in abbreviated form) the
80 * new type designation status to be created
81 * @see #SnameTypeDesignationStatus()
82 * @see #SpecimenTypeDesignationStatus()
83 */
84 public TypeDesignationStatusBase(String term, String label, String labelAbbrev) {
85 super(term, label, labelAbbrev);
86 }
87 }