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.term;
|
11
|
|
12
|
import java.util.UUID;
|
13
|
|
14
|
import eu.etaxonomy.cdm.model.common.AnnotationType;
|
15
|
import eu.etaxonomy.cdm.model.common.ExtensionType;
|
16
|
import eu.etaxonomy.cdm.model.common.Language;
|
17
|
import eu.etaxonomy.cdm.model.common.MarkerType;
|
18
|
import eu.etaxonomy.cdm.model.description.Feature;
|
19
|
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
|
20
|
import eu.etaxonomy.cdm.model.description.NaturalLanguageTerm;
|
21
|
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
|
22
|
import eu.etaxonomy.cdm.model.description.State;
|
23
|
import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
|
24
|
import eu.etaxonomy.cdm.model.description.TextFormat;
|
25
|
import eu.etaxonomy.cdm.model.location.Country;
|
26
|
import eu.etaxonomy.cdm.model.location.NamedArea;
|
27
|
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
|
28
|
import eu.etaxonomy.cdm.model.location.NamedAreaType;
|
29
|
import eu.etaxonomy.cdm.model.location.ReferenceSystem;
|
30
|
import eu.etaxonomy.cdm.model.media.RightsType;
|
31
|
import eu.etaxonomy.cdm.model.name.HybridRelationshipType;
|
32
|
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
|
33
|
import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
|
34
|
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
|
35
|
import eu.etaxonomy.cdm.model.name.Rank;
|
36
|
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
|
37
|
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
|
38
|
import eu.etaxonomy.cdm.model.taxon.SynonymType;
|
39
|
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
|
40
|
import eu.etaxonomy.cdm.model.term.TermRelationshipType;
|
41
|
|
42
|
/**
|
43
|
* @author n.hoffmann
|
44
|
* @since 03.06.2009
|
45
|
**/
|
46
|
public enum VocabularyEnum {
|
47
|
|
48
|
Language("45ac7043-7f5e-4f37-92f2-3874aaaef2de", Language.class),
|
49
|
UndefinedLanguage("7fd1e6d0-2e76-4dfa-bad9-2673dd042c28", Language.class),
|
50
|
NamedAreaType("e51d52d6-965b-4f7d-900f-4ba9c6f5dd33", NamedAreaType.class),
|
51
|
NamedAreaLevel("49034253-27c8-4219-97e8-f8d987d3d122", NamedAreaLevel.class),
|
52
|
Continent("e72cbcb6-58f8-4201-9774-15d0c6abc128", NamedArea.class),
|
53
|
Country("006b1870-7347-4624-990f-e5ed78484a1a", Country.class),
|
54
|
Waterbody("35a62b25-f541-4f12-a7c7-17d90dec3e03", NamedArea.class),
|
55
|
Rank("ef0d1ce1-26e3-4e83-b47b-ca74eed40b1b", Rank.class),
|
56
|
SpecimenTypeDesignationStatus("ab177bd7-d3c8-4e58-a388-226fff6ba3c2", SpecimenTypeDesignationStatus.class),
|
57
|
NomenclaturalStatusType("bb28cdca-2f8a-4f11-9c21-517e9ae87f1f", NomenclaturalStatusType.class),
|
58
|
NomenclaturalStatusTypeIczn("5e3c08e9-13a9-498e-861e-b9b5656ab6ac", NomenclaturalStatusType.class),
|
59
|
SynonymType("48917fde-d083-4659-b07d-413db843bd50", SynonymType.class),
|
60
|
HybridRelationshipType("fc4abe52-9c25-4cfa-a682-8615bf4bbf07", HybridRelationshipType.class),
|
61
|
NameRelationshipType("6878cb82-c1a4-4613-b012-7e73b413c8cd", NameRelationshipType.class),
|
62
|
TaxonRelationshipType("15db0cf7-7afc-4a86-a7d4-221c73b0c9ac", TaxonRelationshipType.class),
|
63
|
TermRelationshipType("4e5bb743-5ddf-4ee2-b893-36fbd386a5ee", TermRelationshipType.class),
|
64
|
MarkerType("19dffff7-e142-429c-a420-5d28e4ebe305", MarkerType.class),
|
65
|
AnnotationType("ca04609b-1ba0-4d31-9c2e-aa8eb2f4e62d", AnnotationType.class),
|
66
|
Feature("b187d555-f06f-4d65-9e53-da7c93f8eaa8", Feature.class),
|
67
|
NameFeature("a7ca3eef-4092-49e1-beec-ed5096193e5e", Feature.class),
|
68
|
TdwgArea("1fb40504-d1d7-44b0-9731-374fbe6cac77", NamedArea.class),
|
69
|
PresenceAbsenceTerm("adbbbe15-c4d3-47b7-80a8-c7d104e53a05", PresenceAbsenceTerm.class),
|
70
|
Sex("9718b7dd-8bc0-4cad-be57-3c54d4d432fe", DefinedTerm.class),
|
71
|
DerivationEventType("398b50bb-348e-4fe0-a7f5-a75afd846d1f", DerivationEventType.class),
|
72
|
// PreservationMethod("a7dc20c9-e6b3-459e-8f05-8d6d8fceb465", DefinedTerm.class),
|
73
|
DeterminationModifier("fe87ea8d-6e0a-4e5d-b0da-0ab8ea67ca77", DefinedTerm.class),
|
74
|
StatisticalMeasure("066cc62e-7213-495e-a020-97a1233bc037", StatisticalMeasure.class),
|
75
|
RightsType("8627c526-73af-44d9-902c-11c1f11b60b4", RightsType.class),
|
76
|
NameTypeDesignationStatus("ab60e738-4d09-4c24-a1b3-9466b01f9f55", NameTypeDesignationStatus.class),
|
77
|
ExtensionType("117cc307-5bd4-4b10-9b2f-2e14051b3b20",ExtensionType.class),
|
78
|
ReferenceSystem("ec6376e5-0c9c-4f5c-848b-b288e6c17a86",ReferenceSystem.class),
|
79
|
InstitutionType("29ad808b-3126-4274-be81-4561e7afc76f", DefinedTerm.class),
|
80
|
MeasurementUnit("3b82c375-66bb-4636-be74-dc9cd087292a", MeasurementUnit.class),
|
81
|
Scope("109bf76d-6f55-43d5-9ec5-6115d9490faa", DefinedTerm.class),
|
82
|
Stage("4d475bea-c3ae-4494-be16-6796f22fabac", DefinedTerm.class),
|
83
|
State("ceb65a53-c6cf-42bb-862f-daca7f2fc11d", State.class),
|
84
|
TextFormat("ac3926d2-5f6b-45a5-9cf9-be2a5a43f9b3", TextFormat.class),
|
85
|
// NamedArea("57c25420-ae94-4848-9513-2aff9bdb502c", NamedArea.class),
|
86
|
NaturalLanguageTerm("fdaba4b0-5c14-11df-a08a-0800200c9a66", NaturalLanguageTerm.class),
|
87
|
Modifier("b9434774-4931-4f1e-99cb-40a3ecd61777", DefinedTerm.class),
|
88
|
DnaMarkerEukaryote("d219a463-1cc9-4800-b82f-3146d0afe31e", DefinedTerm.class),
|
89
|
DnaMarkerChloroplast("e572d370-a27b-40d3-974c-cb17562b59cf", DefinedTerm.class),
|
90
|
PlantKindOfUnit("5167c47b-7726-4dba-b02f-dafb7629481b", DefinedTerm.class),
|
91
|
SpecimenKindOfUnit("b0344ec4-12f7-40d3-82c1-0092e9780bbd", DefinedTerm.class),
|
92
|
MediaSpecimenKindOfUnit("56f47c83-8d42-404a-88fc-03c57b560f6d", DefinedTerm.class),
|
93
|
IdentifierType("67d91839-484e-4183-8b4c-6a4a80dfc066", DefinedTerm.class),
|
94
|
DnaQualityType("55746f7b-78a8-4e5f-8e70-ee9ce047c835", OrderedTerm.class),
|
95
|
TaxonNodeAgentRelationType("0aa8e0c6-c7b5-42dd-91b7-0bd273a64b2c", DefinedTerm.class)
|
96
|
;
|
97
|
|
98
|
private UUID uuid;
|
99
|
private Class<? extends DefinedTermBase<?>> clazz;
|
100
|
|
101
|
private VocabularyEnum(String uuidString, Class<? extends DefinedTermBase<?>> clazz){
|
102
|
this.uuid = UUID.fromString(uuidString);
|
103
|
this.clazz = clazz;
|
104
|
}
|
105
|
|
106
|
/**
|
107
|
* @return the <code>UUID</code> this vocabulary is uniquely identified with
|
108
|
*/
|
109
|
public UUID getUuid(){
|
110
|
return uuid;
|
111
|
}
|
112
|
|
113
|
/**
|
114
|
* @return the Class of a specific term vocabulary
|
115
|
*/
|
116
|
public Class<? extends DefinedTermBase<?>> getClazz(){
|
117
|
return clazz;
|
118
|
}
|
119
|
|
120
|
public static VocabularyEnum getVocabularyEnum(Class<?> clazz){
|
121
|
|
122
|
for(VocabularyEnum vocabulary : VocabularyEnum.values()){
|
123
|
if(vocabulary.getClazz().equals(clazz)){
|
124
|
return vocabulary;
|
125
|
}
|
126
|
}
|
127
|
|
128
|
return null;
|
129
|
}
|
130
|
}
|