Project

General

Profile

Download (3.3 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(22-22/26)