Project

General

Profile

Download (3.25 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
package eu.etaxonomy.cdm.model.common;
10

    
11
import java.util.HashMap;
12
import java.util.Map;
13
import java.util.UUID;
14

    
15
import javax.persistence.Entity;
16
import javax.xml.bind.annotation.XmlAccessType;
17
import javax.xml.bind.annotation.XmlAccessorType;
18
import javax.xml.bind.annotation.XmlRootElement;
19
import javax.xml.bind.annotation.XmlType;
20

    
21
import org.hibernate.envers.Audited;
22

    
23

    
24
/**
25
 * @author a.mueller
26
 * @created 2014-11-19
27
 *
28
 */
29
@XmlAccessorType(XmlAccessType.FIELD)
30
@XmlType(name = "OrderedTerm")
31
@XmlRootElement(name = "OrderedTerm")
32
@Entity
33
//@Indexed disabled to reduce clutter in indexes, since this type is not used by any search
34
//@Indexed(index = "eu.etaxonomy.cdm.model.common.DefinedTermBase")
35
@Audited
36
public class OrderedTerm extends OrderedTermBase<OrderedTerm>  {
37
	private static final long serialVersionUID = 5122485867783720769L;
38

    
39
	//Determination modifier
40
	public static final UUID uuidDnaQualityHigh = UUID.fromString("ec443c76-5987-4ec5-a66b-da207f70b47f");
41
	public static final UUID uuidDnaQualityMedium = UUID.fromString("2a174892-1246-4807-9022-71ce8639346b");
42
	public static final UUID uuidDnaQualityLow = UUID.fromString("a3bf12ff-b041-425f-bdaa-aa51da65eebc");
43

    
44

    
45
	protected static Map<UUID, OrderedTerm> termMap = null;
46

    
47

    
48
	protected static OrderedTerm getTermByUuid(UUID uuid){
49
        if (termMap == null || termMap.isEmpty()){
50
            return getTermByClassAndUUID(OrderedTerm.class, uuid);
51
        } else {
52
			return termMap.get(uuid);
53
		}
54
	}
55

    
56

    
57
	public static OrderedTerm NewInstance(TermType termType, String description, String label, String labelAbbrev){
58
		return new OrderedTerm(termType, description, label, labelAbbrev);
59
	}
60

    
61

    
62
	public static OrderedTerm NewDnaQualityInstance(String description, String label, String labelAbbrev){
63
		return new OrderedTerm(TermType.DnaQualityType, description, label, labelAbbrev);
64
	}
65

    
66

    
67
//******************* CONSTRUCTOR ***********************************/
68

    
69
	//for hibernate/javassist use only
70
	@Deprecated
71
	protected OrderedTerm(){super(TermType.Unknown);}
72

    
73
	public OrderedTerm(TermType type, String description, String label, String labelAbbrev) {
74
		super(type, description, label, labelAbbrev);
75
	}
76

    
77
//*************************** TERM MAP *********************/
78

    
79

    
80
	public static final OrderedTerm DNA_QUALITY_HIGH(){
81
		return getTermByUuid(uuidDnaQualityHigh);
82
	}
83

    
84
	public static final OrderedTerm DNA_QUALITY_MEDIUM(){
85
		return getTermByUuid(uuidDnaQualityMedium);
86
	}
87

    
88
	public static final OrderedTerm DNA_QUALITY_Low(){
89
		return getTermByUuid(uuidDnaQualityLow);
90
	}
91

    
92
	@Override
93
	public void resetTerms() {
94
		termMap = null;
95
	}
96

    
97
	@Override
98
	protected void setDefaultTerms(TermVocabulary<OrderedTerm> termVocabulary) {
99
		if (termMap == null){
100
			termMap = new HashMap<UUID, OrderedTerm>();
101
		}
102
		for (OrderedTerm term : termVocabulary.getTerms()){
103
			termMap.put(term.getUuid(), term);  //TODO casting
104
		}
105
	}
106

    
107
	@Override  //?
108
	protected int partOfCsvLineIndex(){
109
		return 5;
110
	}
111

    
112
}
(51-51/72)