Project

General

Profile

Download (5.57 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.location;
11

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

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

    
22
import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
23
import org.hibernate.envers.Audited;
24

    
25
import eu.etaxonomy.cdm.model.term.OrderedTermBase;
26
import eu.etaxonomy.cdm.model.term.TermType;
27
import eu.etaxonomy.cdm.model.term.TermVocabulary;
28

    
29
/**
30
 * Controlled vocabulary to differentiate levels of areas such as province, state,
31
 * etc.
32
 * @author m.doering
33
 * @since 08-Nov-2007 13:06:36
34
 */
35
@XmlAccessorType(XmlAccessType.FIELD)
36
@XmlType(name = "NamedAreaLevel")
37
@XmlRootElement(name = "NamedAreaLevel")
38
@Entity
39
//@Indexed disabled to reduce clutter in indexes, since this type is not used by any search
40
//@Indexed(index = "eu.etaxonomy.cdm.model.term.DefinedTermBase")
41
@Audited
42
public class NamedAreaLevel extends OrderedTermBase<NamedAreaLevel> {
43
	private static final long serialVersionUID = -7977901140330659208L;
44
	@SuppressWarnings("unused")
45
	private static final Logger logger = LogManager.getLogger(NamedAreaLevel.class);
46

    
47
	protected static Map<UUID, NamedAreaLevel> termMap = null;
48

    
49
	private static final UUID uuidTdwgLevel1 = UUID.fromString("cd7771b2-7427-4a01-9057-7d7a897dddaf");
50
	private static final UUID uuidTdwgLevel2 = UUID.fromString("38efa5fd-d7f0-451c-9de9-e6cce41e2225");
51
	private static final UUID uuidTdwgLevel3 = UUID.fromString("25b563b6-6a6c-401b-b090-c9498886c50b");
52
	private static final UUID uuidTdwgLevel4 = UUID.fromString("160ff2c8-9bfc-49c2-9afd-049c21a91695");
53
	private static final UUID uuidNatureReserve = UUID.fromString("340b9050-a65d-4dd4-9523-bc10f977bc68");
54
	private static final UUID uuidState = UUID.fromString("08aa6127-8ebc-4120-8411-a468a7257e02");
55
	private static final UUID uuidProvince = UUID.fromString("401d48b4-9f09-4354-be0f-c2138444f72d");
56
	private static final UUID uuidTown = UUID.fromString("f127b4d2-f6bc-4019-9c87-ee3f4de1f094");
57
	private static final UUID uuidCountry = UUID.fromString("79db63a4-1563-461e-8e41-48f5722feca4");
58
    private static final UUID uuidDepartment = UUID.fromString("a31fe600-d142-4722-b82e-4df2f5ec3cb3");
59

    
60
//************************** FACTORY METHODS ********************************
61

    
62
	/**
63
	 * Factory method
64
	 * @return
65
	 */
66
	public static NamedAreaLevel NewInstance(){
67
		return new NamedAreaLevel();
68
	}
69

    
70
	/**
71
	 * Factory method
72
	 * @return
73
	 */
74
	public static NamedAreaLevel NewInstance(String term, String label, String labelAbbrev){
75
		return new NamedAreaLevel(term, label, labelAbbrev);
76
	}
77

    
78
//************************** CONSTRUCTOR ********************************
79

    
80
	//for hibernate use only
81
	@Deprecated
82
	protected NamedAreaLevel() {
83
		super(TermType.NamedAreaLevel);
84
	}
85

    
86
	private NamedAreaLevel(String term, String label, String labelAbbrev) {
87
		super(TermType.NamedAreaLevel, term, label, labelAbbrev);
88
	}
89

    
90

    
91

    
92
//************************** METHODS ********************************
93

    
94
	protected static NamedAreaLevel getTermByUuid(UUID uuid){
95
	    if (termMap == null || termMap.isEmpty()){
96
            return getTermByClassAndUUID(NamedAreaLevel.class, uuid);
97
        } else {
98
            return termMap.get(uuid);
99
        }
100
	}
101

    
102
	/**
103
	 * Continents
104
	 */
105
	public static final NamedAreaLevel TDWG_LEVEL1(){
106
		return getTermByUuid(uuidTdwgLevel1);
107
	}
108

    
109
	/**
110
	 * larger regions
111
	 */
112
	public static final NamedAreaLevel TDWG_LEVEL2(){
113
		return getTermByUuid(uuidTdwgLevel2);
114
	}
115

    
116
	/**
117
	 * mostly countries
118
	 */
119
	public static final NamedAreaLevel TDWG_LEVEL3(){
120
		return getTermByUuid(uuidTdwgLevel3);
121
	}
122

    
123
	public static final NamedAreaLevel TDWG_LEVEL4(){
124
		return getTermByUuid(uuidTdwgLevel4);
125
	}
126

    
127
	public static final NamedAreaLevel NATURE_RESERVE(){
128
		return getTermByUuid(uuidNatureReserve);
129
	}
130

    
131
	public static final NamedAreaLevel STATE(){
132
		return getTermByUuid(uuidState);
133
	}
134

    
135
	public static final NamedAreaLevel PROVINCE(){
136
		return getTermByUuid(uuidProvince);
137
	}
138

    
139
    public static NamedAreaLevel DEPARTMENT() {
140
        return getTermByUuid(uuidDepartment);
141
    }
142

    
143
	public static final NamedAreaLevel TOWN(){
144
		return getTermByUuid(uuidTown);
145
	}
146

    
147
	public static final NamedAreaLevel COUNTRY(){
148
		return getTermByUuid(uuidCountry);
149
	}
150

    
151
	public static final boolean isTDWG_LEVEL1(String str){
152
		boolean result = false;
153
		if (uuidTdwgLevel1.compareTo(UUID.fromString(str)) == 0){
154
			result = true;
155
		}
156
		return result;
157
	}
158

    
159
	public static final boolean isTDWG_LEVEL2(String str){
160
		boolean result = false;
161
		if (uuidTdwgLevel2.compareTo(UUID.fromString(str)) == 0){
162
			result = true;
163
		}
164
		return result;
165
	}
166

    
167
	public static final boolean isTDWG_LEVEL3(String str){
168
		boolean result = false;
169
		if (uuidTdwgLevel3.compareTo(UUID.fromString(str)) == 0){
170
			result = true;
171
		}
172
		return result;
173
	}
174

    
175
	public static final boolean isTDWG_LEVEL4(String str){
176
		boolean result = false;
177
		if (uuidTdwgLevel4.compareTo(UUID.fromString(str)) == 0){
178
			result = true;
179
		}
180
		return result;
181
	}
182

    
183
	@Override
184
	public void resetTerms(){
185
		termMap = null;
186
	}
187

    
188
	@Override
189
	protected void setDefaultTerms(TermVocabulary<NamedAreaLevel> termVocabulary) {
190
		termMap = new HashMap<UUID, NamedAreaLevel>();
191
		for (NamedAreaLevel term : termVocabulary.getTerms()){
192
			termMap.put(term.getUuid(), term);
193
		}
194
	}
195

    
196
}
(3-3/8)