2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.model
.common
;
13 import java
.util
.HashMap
;
15 import java
.util
.UUID
;
17 import javax
.persistence
.Entity
;
18 import javax
.xml
.bind
.annotation
.XmlAccessType
;
19 import javax
.xml
.bind
.annotation
.XmlAccessorType
;
20 import javax
.xml
.bind
.annotation
.XmlRootElement
;
21 import javax
.xml
.bind
.annotation
.XmlType
;
23 import org
.apache
.log4j
.Logger
;
24 import org
.hibernate
.envers
.Audited
;
25 import org
.hibernate
.search
.annotations
.Indexed
;
28 * Annotation types ...
30 * @created 12-Nov-2008 15:37:33
32 @XmlAccessorType(XmlAccessType
.FIELD
)
33 @XmlType(name
= "AnnotationType")
34 @XmlRootElement(name
= "AnnotationType")
36 @Indexed(index
= "eu.etaxonomy.cdm.model.common.DefinedTermBase")
38 public class AnnotationType
extends DefinedTermBase
<AnnotationType
> {
39 private static final long serialVersionUID
= 49629121282854575L;
40 @SuppressWarnings("unused")
41 private static final Logger logger
= Logger
.getLogger(AnnotationType
.class);
43 protected static Map
<UUID
, AnnotationType
> termMap
= null;
45 private static final UUID uuidTechnical
= UUID
.fromString("6a5f9ea4-1bdd-4906-89ad-6e669f982d69");
46 private static final UUID uuidEditorial
= UUID
.fromString("e780d5fd-abfc-4025-938a-46deb751d808");
48 public static AnnotationType
NewInstance(String term
, String label
, String labelAbbrev
){
49 return new AnnotationType(term
, label
, labelAbbrev
);
52 //********************************** Constructor *******************************************************************/
54 //for hibernate use only
56 protected AnnotationType() {
57 super(TermType
.AnnotationType
);
65 protected AnnotationType(String term
, String label
, String labelAbbrev
) {
66 super(TermType
.AnnotationType
, term
, label
, labelAbbrev
);
70 //************************** METHODS ********************************
73 * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
76 public void resetTerms(){
80 protected static AnnotationType
getTermByUuid(UUID uuid
){
82 return null; //better return null then initialize the termMap in an unwanted way
84 return (AnnotationType
)termMap
.get(uuid
);
88 public static final AnnotationType
TECHNICAL(){
89 return getTermByUuid(uuidTechnical
);
92 public static final AnnotationType
EDITORIAL(){
93 return getTermByUuid(uuidEditorial
);
96 protected void setDefaultTerms(TermVocabulary
<AnnotationType
> termVocabulary
) {
97 termMap
= new HashMap
<UUID
, AnnotationType
>();
98 for (AnnotationType term
: termVocabulary
.getTerms()){
99 termMap
.put(term
.getUuid(), (AnnotationType
)term
);