Project

General

Profile

Download (3.47 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

    
21
import eu.etaxonomy.cdm.model.common.OrderedTermBase;
22
import eu.etaxonomy.cdm.model.common.TermType;
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
 * @created 08-Nov-2007 13:07:00
45
 */
46
@XmlAccessorType(XmlAccessType.FIELD)
47
@XmlType(name = "TypeDesignationStatusBase")
48
@XmlSeeAlso({
49
	NameTypeDesignationStatus.class,
50
	SpecimenTypeDesignationStatus.class
51
})
52
@Entity
53
@Audited
54
public abstract class TypeDesignationStatusBase<T extends TypeDesignationStatusBase<?>> extends OrderedTermBase<T> {
55
	private static final long serialVersionUID = -7204587330204725285L;
56
	static Logger logger = Logger.getLogger(TypeDesignationStatusBase.class);
57

    
58

    
59
//********************************** Constructor *********************************/
60

    
61
  	//for hibernate use only
62
  	@Deprecated
63
  	protected TypeDesignationStatusBase(){super(TermType.Unknown);};
64

    
65
	/**
66
	 * Class constructor: creates a new empty type designation status instance.
67
	 *
68
	 * @see 	#NameTypeDesignationStatus(String, String, String)
69
	 * @see 	#SpecimenTypeDesignationStatus(String, String, String)
70
	 */
71
	protected TypeDesignationStatusBase(TermType type) {
72
		super(type);
73
	}
74

    
75

    
76
	/**
77
	 * Class constructor: creates an additional type designation status instance
78
	 * with a description (in the {@link eu.etaxonomy.cdm.model.common.Language#DEFAULT() default language}), a label
79
	 * and a label abbreviation.
80
	 *
81
	 * @param	term  		 the string (in the default language) describing the
82
	 * 						 new type designation status to be created
83
	 * @param	label  		 the string identifying the new type designation
84
	 * 						 status to be created
85
	 * @param	labelAbbrev  the string identifying (in abbreviated form) the
86
	 * 						 new type designation status to be created
87
	 * @see 				 #SnameTypeDesignationStatus()
88
	 * @see 				 #SpecimenTypeDesignationStatus()
89
	 */
90
	protected TypeDesignationStatusBase(TermType type, String term, String label, String labelAbbrev) {
91
		super(type, term, label, labelAbbrev);
92
	}
93
}
(24-24/28)