1
|
// $Id$
|
2
|
/**
|
3
|
* Copyright (C) 2007 EDIT
|
4
|
* European Distributed Institute of Taxonomy
|
5
|
* http://www.e-taxonomy.eu
|
6
|
*
|
7
|
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
8
|
* See LICENSE.TXT at the top of this package for the full license terms.
|
9
|
*/
|
10
|
|
11
|
package eu.etaxonomy.cdm.model.common;
|
12
|
|
13
|
import java.io.Serializable;
|
14
|
import java.util.Set;
|
15
|
import java.util.UUID;
|
16
|
|
17
|
import javax.lang.model.element.Modifier;
|
18
|
import javax.xml.bind.annotation.XmlEnum;
|
19
|
import javax.xml.bind.annotation.XmlEnumValue;
|
20
|
|
21
|
import org.apache.log4j.Logger;
|
22
|
|
23
|
import eu.etaxonomy.cdm.model.agent.Institution;
|
24
|
import eu.etaxonomy.cdm.model.description.CategoricalData;
|
25
|
import eu.etaxonomy.cdm.model.description.DescriptionBase;
|
26
|
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
|
27
|
import eu.etaxonomy.cdm.model.description.Distribution;
|
28
|
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
|
29
|
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
|
30
|
import eu.etaxonomy.cdm.model.description.StateData;
|
31
|
import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
|
32
|
import eu.etaxonomy.cdm.model.description.TaxonDescription;
|
33
|
import eu.etaxonomy.cdm.model.description.TextData;
|
34
|
import eu.etaxonomy.cdm.model.location.NamedArea;
|
35
|
import eu.etaxonomy.cdm.model.location.Point;
|
36
|
import eu.etaxonomy.cdm.model.media.Rights;
|
37
|
import eu.etaxonomy.cdm.model.molecular.Amplification;
|
38
|
import eu.etaxonomy.cdm.model.name.HybridRelationship;
|
39
|
import eu.etaxonomy.cdm.model.name.NameRelationship;
|
40
|
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
|
41
|
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
|
42
|
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
|
43
|
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
|
44
|
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
|
45
|
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
|
46
|
import eu.etaxonomy.cdm.model.taxon.Synonym;
|
47
|
import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
|
48
|
import eu.etaxonomy.cdm.model.taxon.Taxon;
|
49
|
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
|
50
|
import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
|
51
|
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
|
52
|
|
53
|
|
54
|
|
55
|
/**
|
56
|
* The term type is used to define the type of a {@link TermBase term}, may it be a vocabulary or a defined term.<BR>
|
57
|
* It is used to define in which context a term may be used. From v3.3 on this replaces the semantic part of the subclasses
|
58
|
* of the class {@link DefinedTermBase}. E.g. before v3.3 a term defining a sex and a term defining a stage had to different
|
59
|
* classes Sex and Stage. With v3.3 they both became {@link DefinedTerm}s but with different types.<BR>
|
60
|
* The type of a term and the type of its vocabulary should be the same. Before v3.3 it was not always possible to define
|
61
|
* what the context of an (empty) vocabulary is.
|
62
|
* In future versions this enum may also be expressed as a term, not an enum. For now the general policy is to
|
63
|
* transform former classes to general classes with enums as their types.
|
64
|
*
|
65
|
* @author a.mueller
|
66
|
* @created 11.06.2013
|
67
|
*/
|
68
|
@XmlEnum
|
69
|
public enum TermType implements IEnumTerm<TermType>, Serializable{
|
70
|
|
71
|
//0
|
72
|
/**
|
73
|
* Unknown term type is the type to be used if no information is available about the type.
|
74
|
* In the current model this type should never be used. However, it is a placeholder in case
|
75
|
* we find an appropriate usage in future.
|
76
|
*/
|
77
|
@XmlEnumValue("Unknown")
|
78
|
Unknown(UUID.fromString("b2836c89-3b1d-4758-ba6d-568ef8d6fbc4"), "Unknown Term Type","UNK", null),
|
79
|
|
80
|
//1
|
81
|
/**
|
82
|
* Term type to represent languages.
|
83
|
*/
|
84
|
@XmlEnumValue("Language")
|
85
|
Language(UUID.fromString("5591dc6c-ad1f-4abd-b6c2-4852ea8e46df"), "Language", "LA", null),
|
86
|
|
87
|
//2
|
88
|
/**
|
89
|
* Term type for areas.
|
90
|
*/
|
91
|
@XmlEnumValue("NamedArea")
|
92
|
NamedArea(UUID.fromString("8c9a0bc9-da91-478d-bc8b-44b11565e160"), "Named Area", "NA", null),
|
93
|
|
94
|
//3
|
95
|
/**
|
96
|
* Term type for taxonomic ranks.
|
97
|
*/
|
98
|
@XmlEnumValue("Rank")
|
99
|
Rank(UUID.fromString("8d26b6a9-8a89-45d5-8358-49c3e4f30ade"), "Rank", "RK", null),
|
100
|
|
101
|
//4
|
102
|
/**
|
103
|
* Term type for descriptive features.
|
104
|
* @see DescriptionElementBase
|
105
|
*/
|
106
|
@XmlEnumValue("Feature")
|
107
|
Feature(UUID.fromString("b866a1d6-f962-4c23-bb8e-a3b66d33aedc"), "Feature", "FE", null),
|
108
|
|
109
|
//5
|
110
|
/**
|
111
|
* Term type for annotation types.
|
112
|
* @see Annotation
|
113
|
*/
|
114
|
@XmlEnumValue("AnnotationType")
|
115
|
AnnotationType(UUID.fromString("c3aabb64-6174-4152-95b1-7cec57e485cf"), "Annotation Type", "ANT", null),
|
116
|
|
117
|
//6
|
118
|
/**
|
119
|
* Term type for marker types.
|
120
|
* @see Marker
|
121
|
*/
|
122
|
@XmlEnumValue("MarkerType")
|
123
|
MarkerType(UUID.fromString("d28a1bf8-95ed-483a-8f02-3515b14998e0"), "Marker Type", "MKT", null),
|
124
|
|
125
|
//7
|
126
|
/**
|
127
|
* Term type for extension types.
|
128
|
* @see Extension
|
129
|
*/
|
130
|
@XmlEnumValue("ExtensionType")
|
131
|
ExtensionType(UUID.fromString("12f5c03b-528a-4909-b81b-e525feabc97c"), "Extension Type", "EXT", null),
|
132
|
|
133
|
//8
|
134
|
/**
|
135
|
* Term type for derivation event types.
|
136
|
* @see DerivationEvent
|
137
|
*/
|
138
|
@XmlEnumValue("DerivationEventType")
|
139
|
DerivationEventType(UUID.fromString("ba8e4b10-c792-42e7-a3f5-874708f10094"), "Derivation Event Type", "DET", null),
|
140
|
|
141
|
//9
|
142
|
/**
|
143
|
* Term type for presence or absence status
|
144
|
* @see Distribution
|
145
|
*/
|
146
|
@XmlEnumValue("PresenceAbsenceTerm")
|
147
|
PresenceAbsenceTerm(UUID.fromString("f6b80f88-c8c5-456b-bbd6-d63ecf35606e"), "Presence or Absence Term", "PAT", null),
|
148
|
|
149
|
//10
|
150
|
/**
|
151
|
* Term type for the taxonomic nomenclatural status of a {@link TaxonNameBase taxon name}.
|
152
|
* @see NomenclaturalStatus
|
153
|
*/
|
154
|
@XmlEnumValue("NomenclaturalStatusType")
|
155
|
NomenclaturalStatusType(UUID.fromString("c1acb71a-1d11-4305-8818-c2268d341742"), "Nomenclatural Status Type", "NST", null),
|
156
|
|
157
|
//11
|
158
|
/**
|
159
|
* Term type for the type of a name relationship between {@link TaxonNameBase taxon names}
|
160
|
* @see NameRelationship
|
161
|
*/
|
162
|
@XmlEnumValue("NameRelationshipType")
|
163
|
NameRelationshipType(UUID.fromString("acd8189a-23b9-4a53-8f48-1d2aa270a6ba"), "Name Relationship Type", "NRT"),
|
164
|
|
165
|
//12
|
166
|
/**
|
167
|
* Term type for the type of a hybrid relationship between {@link TaxonNameBase taxon names}
|
168
|
* @see HybridRelationship
|
169
|
*/
|
170
|
@XmlEnumValue("HybridRelationshipType")
|
171
|
HybridRelationshipType(UUID.fromString("aade9e61-eaa1-40fe-9eb1-40f9e8ae1114"), "Hybrid Relationship Type", "HRT"),
|
172
|
|
173
|
//13
|
174
|
/**
|
175
|
* Term type for the type of a synonym relationship between 2 {@link TaxonBase taxa}
|
176
|
* @see SynonymRelationship
|
177
|
* @see Synonym
|
178
|
* @see TaxonBase
|
179
|
*/
|
180
|
@XmlEnumValue("SynonymRelationshipType")
|
181
|
SynonymRelationshipType(UUID.fromString("1eb4fee0-7716-4531-a9ed-a95327f1f4bb"), "Synonym Relationship Type", "SRT"),
|
182
|
|
183
|
//14
|
184
|
/**
|
185
|
* Term type for the type of a taxonomic concept relationship between
|
186
|
* 2 {@link Taxon accepted taxa} with different secundum referece.
|
187
|
* @see TaxonRelationship
|
188
|
* @see Taxon
|
189
|
*/
|
190
|
@XmlEnumValue("TaxonRelationshipType")
|
191
|
TaxonRelationshipType(UUID.fromString("2d4b281c-142e-42c5-8eb5-1747592b54d8"), "Taxon Relationship Type", "TRT"),
|
192
|
|
193
|
//15
|
194
|
/**
|
195
|
* Term type for the type of a typification of a taxonomic name
|
196
|
* with a rank higher then species.
|
197
|
* @see eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus
|
198
|
* @see NameTypeDesignation
|
199
|
*/
|
200
|
@XmlEnumValue("NameTypeDesignationStatus")
|
201
|
NameTypeDesignationStatus(UUID.fromString("d3860be6-8a08-4fff-984a-6ee8b42937c9"), "Name Type Designation Status", "NTD"),
|
202
|
|
203
|
//16
|
204
|
/**
|
205
|
* Term type for the type of a typification of a taxonomic name
|
206
|
* with a rank equal or lower then species.
|
207
|
* @see {@link eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus}
|
208
|
* @see SpecimenTypeDesignation
|
209
|
*/
|
210
|
@XmlEnumValue("SpecimenTypeDesignationStatus")
|
211
|
SpecimenTypeDesignationStatus(UUID.fromString("4014d7d4-f2dd-4328-8015-357a1a77c1ed"), "Specimen Type Designation Status", "STD"),
|
212
|
|
213
|
//17
|
214
|
/**
|
215
|
* Term type for an institution type.
|
216
|
* @see Institution
|
217
|
*/
|
218
|
@XmlEnumValue("InstitutionType")
|
219
|
InstitutionType(UUID.fromString("09d78265-18b5-4352-b154-d2f39e84d3f3"), "Institution Type", "IT", null),
|
220
|
|
221
|
//18
|
222
|
/**
|
223
|
* Term type for a named area type.
|
224
|
* @see NamedArea
|
225
|
* @see eu.etaxonomy.cdm.model.location.NamedAreaType
|
226
|
*/
|
227
|
@XmlEnumValue("NamedAreaType")
|
228
|
NamedAreaType(UUID.fromString("6a9aba35-6272-4373-8386-000cf95b729e"), "Named Area Type", "NAT", null),
|
229
|
|
230
|
//19
|
231
|
/**
|
232
|
* Term type for a named area level.
|
233
|
* @see NamedArea
|
234
|
* @see eu.etaxonomy.cdm.model.location.NamedAreaLevel
|
235
|
*/
|
236
|
@XmlEnumValue("NamedAreaLevel")
|
237
|
NamedAreaLevel(UUID.fromString("62c16c74-dc79-4970-9031-bb1504be46f5"), "Named Area Level", "NAL", null),
|
238
|
|
239
|
//20
|
240
|
/**
|
241
|
* Term type for rights.
|
242
|
* @see Rights
|
243
|
*/
|
244
|
@XmlEnumValue("RightsType")
|
245
|
RightsType(UUID.fromString("80e06b04-8d0d-4bd5-bcd6-d35f73c24d55"), "Rights Type", "RT", null),
|
246
|
|
247
|
//21
|
248
|
/**
|
249
|
* Term type for a measurement unit.
|
250
|
* @see MeasurementUnit
|
251
|
*/
|
252
|
@XmlEnumValue("MeasurementUnit")
|
253
|
MeasurementUnit(UUID.fromString("f9e6c44f-f0d6-428b-9bc0-bb00a6514883"), "Measurement Unit", "MU", null),
|
254
|
|
255
|
//22
|
256
|
/**
|
257
|
* Term type for a statistical measure.
|
258
|
* @see eu.etaxonomy.cdm.model.description.StatisticalMeasure
|
259
|
* @see StatisticalMeasurementValue
|
260
|
*/
|
261
|
@XmlEnumValue("StatisticalMeasure")
|
262
|
StatisticalMeasure(UUID.fromString("a22d19cd-a342-4af2-b156-d688a7aa8a6b"), "Statistical Measure", "SM", null),
|
263
|
|
264
|
//23
|
265
|
@XmlEnumValue("MaterialOrMethod")
|
266
|
MaterialOrMethod(UUID.fromString("285a1406-a606-46b9-b0a4-717748296e50"), "Material or Method", "MOM"),
|
267
|
|
268
|
//23a
|
269
|
@XmlEnumValue("Material")
|
270
|
Material(UUID.fromString("58499bc1-9808-4e03-861c-4325ca889515"), "Material", "MAT", MaterialOrMethod),
|
271
|
|
272
|
//23b
|
273
|
@XmlEnumValue("Method")
|
274
|
Method(UUID.fromString("527fc141-7fdf-43c1-9d46-20be13c2590c"), "Method", "MET", MaterialOrMethod),
|
275
|
|
276
|
|
277
|
// //23c TODO required??
|
278
|
// @XmlEnumValue("PreservationMethod") --> Method
|
279
|
// PreservationMethod(UUID.fromString("9cadbee4-22b5-40f5-bb37-e4f5340d246e"), "Preservation method", "PRM", MaterialOrMethod),
|
280
|
//
|
281
|
// //23d TODO required?? --> Material
|
282
|
// @XmlEnumValue("PreservationMedium")
|
283
|
// PreservationMedium(UUID.fromString("c6269a06-6954-4838-a7a7-7f94ba372f3d"), "Preservation medium", "PME", MaterialOrMethod),
|
284
|
|
285
|
|
286
|
//24
|
287
|
/**
|
288
|
* This type represents possible modulations for the validity of
|
289
|
* information pieces ({@link DescriptionElementBase} description elements).
|
290
|
* It can cover probability ("perhaps"), frequency ("often") intensity ("very"),
|
291
|
* timing ("spring") and other domains. Its instances can be grouped to build
|
292
|
* different controlled {@link TermVocabulary term vocabularies}.
|
293
|
* <P>
|
294
|
* This class corresponds to GeneralModifierNLDType according to
|
295
|
* the SDD schema.
|
296
|
* This class is a generalization of {@link #Scope} and {@link #DeterminationModifier}
|
297
|
*
|
298
|
* @see DescriptionElementBase#getModifiers()
|
299
|
* @see StateData#getModifiers()
|
300
|
*/
|
301
|
@XmlEnumValue("Modifier")
|
302
|
Modifier(UUID.fromString("97c4db67-ccf5-40bf-9fb8-83fb7446a364"), "Modifier", "MO", null),
|
303
|
|
304
|
//25
|
305
|
/**
|
306
|
* The type representing restrictions for the validity of
|
307
|
* {@link TaxonDescription taxon descriptions} and others.
|
308
|
* This could include not only Stage (life stage) and Sex
|
309
|
* but also for instance particular organism parts or seasons.<BR>
|
310
|
* Scope is a specialization of {@link #Modifier} and a generalization of
|
311
|
* {@link #Sex} and {@link #Stage}
|
312
|
*
|
313
|
* @see Modifier
|
314
|
* @see DescriptionElementBase
|
315
|
* @see TaxonDescription
|
316
|
* @see TaxonDescription#getScopes()
|
317
|
*/
|
318
|
@XmlEnumValue("Scope")
|
319
|
Scope(UUID.fromString("8862b66e-9059-4ea4-885e-47a373357075"), "Scope", "SCO", Modifier),
|
320
|
|
321
|
//26
|
322
|
/** The stage type represents the restriction (scope) concerning the life stage for
|
323
|
* the applicability of {@link TaxonDescription taxon descriptions}. The life stage of a
|
324
|
* {@link SpecimenOrObservationBase specimen or observation}
|
325
|
* does not belong to a {@link SpecimenDescription specimen description} but is an attribute of
|
326
|
* the specimen itself.<BR>
|
327
|
*
|
328
|
* Stage is a specialization of {@link #Scope}.
|
329
|
*/
|
330
|
@XmlEnumValue("Stage")
|
331
|
Stage(UUID.fromString("cf411ef0-8eee-4461-99e9-c03f4f0a1656"), "Stage", "STG", Scope),
|
332
|
|
333
|
//26a
|
334
|
/** The kind-of-unit type represents the restriction (scope) concerning the part(s) of an
|
335
|
* organism or the class of materials represented by a specimen or observation or described
|
336
|
* by a {@link DescriptionBase taxon or specimen description}.<BR>
|
337
|
* In a {@link DescriptionBase description} it can be used as a {@link #Modifier} or
|
338
|
* a {@link #Scope} and therefore it is a specialization of {@link #Scope}.<BR>
|
339
|
* The kind-of-unit of a {@link SpecimenOrObservationBase specimen or observation}
|
340
|
* should be added as an {@link SpecimenOrObservationBase#getKindOfUnit() kindOfUnit} attribute
|
341
|
* if the specimen is only a part of an organism and this part is described by the part-of-unit.
|
342
|
* If only a part of a specimen is described in a {@link SpecimenDescription specimen description}
|
343
|
* the kind-of-unit should be used as a {@link DescriptionBase description} scope
|
344
|
* (not yet implemented for specimen descriptions) or as a modifier in a
|
345
|
* {@link DescriptionElementBase description item}.<BR><BR>
|
346
|
*
|
347
|
* Value examples are: fruits, seeds, tissue, gDNA, leaves, ... <BR>
|
348
|
*
|
349
|
* KindOfUnit is a Specialization of {@link #Scope}.
|
350
|
*
|
351
|
* @see SpecimenOrObservationBase#getKindOfUnit()
|
352
|
* @see TaxonDescription#getScopes()
|
353
|
* @see DescriptionElementBase#getModifiers()
|
354
|
* @see StateData#getModifiers()
|
355
|
*/
|
356
|
@XmlEnumValue("KindOfUnit")
|
357
|
KindOfUnit(UUID.fromString("e3edf086-ff7b-4e58-ab1c-d509352fe5f4"), "Kind of Unit", "KOU", Scope),
|
358
|
|
359
|
|
360
|
//27
|
361
|
/**
|
362
|
* The type represents the restriction concerning the sex for
|
363
|
* the applicability of {@link TaxonDescription taxon descriptions} or others. The sex of a
|
364
|
* {@link SpecimenOrObservationBase specimen or observation}
|
365
|
* does not belong to a {@link SpecimenDescription specimen description} but is an attribute of
|
366
|
* the specimen itself.<BR>
|
367
|
*
|
368
|
* Sex is a specialization of {@link #Scope}.
|
369
|
*/
|
370
|
@XmlEnumValue("Sex")
|
371
|
Sex(UUID.fromString("4046f91f-063b-4b84-b34a-6245c2abc06f"), "Sex", "SEX", Scope),
|
372
|
|
373
|
//28
|
374
|
/**
|
375
|
* Term type for a reference system of a geographic information.
|
376
|
* @see Point
|
377
|
* @see Point#getReferenceSystem()
|
378
|
*/
|
379
|
@XmlEnumValue("ReferenceSystem")
|
380
|
ReferenceSystem(UUID.fromString("b8cfa986-ef90-465e-9609-1dadae2a0f5b"), "Reference System", "RS", null),
|
381
|
|
382
|
//29
|
383
|
/**
|
384
|
* Term type for a term representing a state for {@link CategoricalData categorical data}
|
385
|
* @see CategoricalData#getStateData()
|
386
|
* @see StateData#getState()
|
387
|
*/
|
388
|
@XmlEnumValue("State")
|
389
|
State(UUID.fromString("5e5b8b60-7300-440a-8706-72fbf31a594f"), "State", "STA", null),
|
390
|
|
391
|
//30
|
392
|
/**
|
393
|
* Term type representing a natural language term.
|
394
|
*/
|
395
|
@XmlEnumValue("NaturalLanguageTerm")
|
396
|
NaturalLanguageTerm(UUID.fromString("9a42ac4e-c175-4633-8b31-74ba8203566a"), "Natural Language Term", "NLT", null),
|
397
|
|
398
|
|
399
|
//31
|
400
|
/**
|
401
|
* Term type for a text format.
|
402
|
* @see TextData
|
403
|
*/
|
404
|
@XmlEnumValue("TextFormat")
|
405
|
TextFormat(UUID.fromString("d26cfdb4-baeb-43d0-a51b-a3428d838790"), "Text Format", "TF", null),
|
406
|
|
407
|
//32
|
408
|
/**
|
409
|
* TODO
|
410
|
*
|
411
|
* Determination modifier is a specialization of {@link #Modifier}.
|
412
|
*/
|
413
|
@XmlEnumValue("DeterminationModifier")
|
414
|
DeterminationModifier(UUID.fromString("ce910516-bc5d-4ac5-be4d-f3c14c27dd85"), "Determination Modifier", "DMO", Modifier),
|
415
|
|
416
|
//33
|
417
|
/**
|
418
|
* A marker is a region on a DNA which is addressed in an {@link Amplification amplification process}.
|
419
|
* It is very similar to a locus, a term which is often used as a synonym. However, a locus is correctly
|
420
|
* defining one concrete place on a given DNA and therefore is more specific. As this specific information
|
421
|
* is usually not available the marker information is provided instead.
|
422
|
* Sometimes marker information includes multiple markers. To handle this it was decided that for such
|
423
|
* combined markers we need to create a new "parent" marker which includes the single markers as "partOf" marker.
|
424
|
* However, this works only if you have a distinct marker hierarchy, so futuere
|
425
|
* @see Amplification
|
426
|
* @see Amplification#getMarker()
|
427
|
* @see Sequencing
|
428
|
* @see Sequencing#getMarker()
|
429
|
*/
|
430
|
@XmlEnumValue("DnaMarker")
|
431
|
DnaMarker(UUID.fromString("7fdddb4f-b0ec-4ce0-bc28-dc94e30e8252"), "DNA Marker", "DMA", null),
|
432
|
|
433
|
//34
|
434
|
/**
|
435
|
* An Identifier Type which can be used as a type in {@link Identifier#type} . It may often be a global unique identifier such as DOI, LSID, Barcode ....
|
436
|
* But also local identifier types such Sample Designation, Catalog Number,
|
437
|
* Accession Number, ... are allowed.
|
438
|
* {@link Identifier#type}
|
439
|
*/
|
440
|
@XmlEnumValue("IdentifierType")
|
441
|
IdentifierType(UUID.fromString("d24eda99-0716-467f-aa1e-4c0f2b6c3922"), "Identifier Type", "IDE", null),
|
442
|
|
443
|
//35
|
444
|
/**
|
445
|
* DNA Quality levels {link DnaQuality#type} . It may often be a global unique identifier such as DOI, LSID, Barcode ....
|
446
|
* But also local identifier types such Sample Designation, Catalog Number,
|
447
|
* Accession Number, ... are allowed.
|
448
|
* {@link DnaQu}
|
449
|
*/
|
450
|
@XmlEnumValue("DnaQualityType")
|
451
|
DnaQualityType(UUID.fromString("18049372-56e6-4d45-85fc-6a403fecb881"), "DNA Quality Type", "DQT", null),
|
452
|
|
453
|
//36
|
454
|
/**
|
455
|
* {@link TaxonNodeAgentRelation#getType() TaxonNode Agent Relation Type}.
|
456
|
* The role an agent plays for a taxon node (classification subtree).
|
457
|
*/
|
458
|
@XmlEnumValue("DnaQualityType")
|
459
|
TaxonNodeAgentRelationType(UUID.fromString("8e28881a-0744-41ff-a5ed-31246125c424"), "TaxonNode Agent Relation Type", "TART", null),
|
460
|
|
461
|
;
|
462
|
|
463
|
|
464
|
// **************** END ENUM **********************/
|
465
|
|
466
|
@SuppressWarnings("unused")
|
467
|
private static final Logger logger = Logger.getLogger(TermType.class);
|
468
|
|
469
|
private TermType(UUID uuid, String defaultString, String key){
|
470
|
this(uuid, defaultString, key, null);
|
471
|
}
|
472
|
|
473
|
private TermType(UUID uuid, String defaultString, String key, TermType parent){
|
474
|
delegateVocTerm = EnumeratedTermVoc.addTerm(getClass(), this, uuid, defaultString, key, parent);
|
475
|
}
|
476
|
|
477
|
|
478
|
// *************************** DELEGATE **************************************/
|
479
|
|
480
|
private static EnumeratedTermVoc<TermType> delegateVoc;
|
481
|
private IEnumTerm<TermType> delegateVocTerm;
|
482
|
|
483
|
static {
|
484
|
delegateVoc = EnumeratedTermVoc.getVoc(TermType.class);
|
485
|
}
|
486
|
|
487
|
@Override
|
488
|
public String getKey(){return delegateVocTerm.getKey();}
|
489
|
|
490
|
@Override
|
491
|
public String getMessage(){return delegateVocTerm.getMessage();}
|
492
|
|
493
|
@Override
|
494
|
public String getMessage(Language language){return delegateVocTerm.getMessage(language);}
|
495
|
|
496
|
@Override
|
497
|
public UUID getUuid() {return delegateVocTerm.getUuid();}
|
498
|
|
499
|
@Override
|
500
|
public TermType getKindOf() {return delegateVocTerm.getKindOf();}
|
501
|
|
502
|
@Override
|
503
|
public Set<TermType> getGeneralizationOf() {return delegateVocTerm.getGeneralizationOf();}
|
504
|
|
505
|
@Override
|
506
|
public boolean isKindOf(TermType ancestor) {return delegateVocTerm.isKindOf(ancestor); }
|
507
|
|
508
|
@Override
|
509
|
public Set<TermType> getGeneralizationOf(boolean recursive) {return delegateVocTerm.getGeneralizationOf(recursive);}
|
510
|
|
511
|
public static TermType getByKey(String key){return delegateVoc.getByKey(key);}
|
512
|
public static TermType getByUuid(UUID uuid) {return delegateVoc.getByUuid(uuid);}
|
513
|
|
514
|
/**
|
515
|
* Returns a defined term base object corresponding to this term type object
|
516
|
*
|
517
|
* @return a defined term base object
|
518
|
*/
|
519
|
public DefinedTermBase getEmptyDefinedTermBase() {
|
520
|
switch(this) {
|
521
|
case DeterminationModifier:
|
522
|
case Modifier:
|
523
|
case Scope:
|
524
|
case Sex:
|
525
|
case Stage:
|
526
|
case KindOfUnit:
|
527
|
case IdentifierType:
|
528
|
case DnaMarker:
|
529
|
return DefinedTerm.NewInstance(this, null, "Untitled", null);
|
530
|
case Feature:
|
531
|
return eu.etaxonomy.cdm.model.description.Feature.NewInstance(null, "Untitled", null);
|
532
|
case State:
|
533
|
return eu.etaxonomy.cdm.model.description.State.NewInstance(null, "Untitled", null);
|
534
|
case MarkerType:
|
535
|
return eu.etaxonomy.cdm.model.common.MarkerType.NewInstance(null, "Untitled", null);
|
536
|
case ExtensionType:
|
537
|
return eu.etaxonomy.cdm.model.common.ExtensionType.NewInstance(null, "Untitled", null);
|
538
|
case NamedArea:
|
539
|
return eu.etaxonomy.cdm.model.location.NamedArea.NewInstance(null, "Untitled", null);
|
540
|
case NamedAreaLevel:
|
541
|
return eu.etaxonomy.cdm.model.location.NamedAreaLevel.NewInstance(null, "Untitled", null);
|
542
|
case NamedAreaType:
|
543
|
return eu.etaxonomy.cdm.model.location.NamedAreaType.NewInstance(null, "Untitled", null);
|
544
|
case PresenceAbsenceTerm:
|
545
|
return eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm.NewPresenceInstance(null, "Untitled", null);
|
546
|
default:
|
547
|
return null;
|
548
|
}
|
549
|
}
|
550
|
|
551
|
}
|