1
|
/**
|
2
|
* Copyright (C) 2021 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.taxon;
|
10
|
|
11
|
import java.util.EnumSet;
|
12
|
import java.util.Set;
|
13
|
import java.util.UUID;
|
14
|
|
15
|
import javax.xml.bind.annotation.XmlEnum;
|
16
|
|
17
|
import eu.etaxonomy.cdm.model.common.Language;
|
18
|
import eu.etaxonomy.cdm.model.term.EnumeratedTermVoc;
|
19
|
import eu.etaxonomy.cdm.model.term.IEnumTerm;
|
20
|
|
21
|
/**
|
22
|
* @author a.mueller
|
23
|
* @since 10.05.2021
|
24
|
*/
|
25
|
@XmlEnum
|
26
|
public enum ConceptDefinition
|
27
|
implements IEnumTerm<ConceptDefinition>{
|
28
|
|
29
|
HOMOTYPIC_GROUP(UUID.fromString("951d781d-f30d-4749-a79a-858a4e6a6eee"),"homotypic groups","HG"),
|
30
|
HOMOTYPIC_GROUP_WITH_EDITOR(UUID.fromString("ee316a72-fd0c-48ac-9104-0fccff091b01"),"homotypic groups with editor decisions","HGWE"),
|
31
|
DESCRIPTION(UUID.fromString("eaec1b7e-a9cd-432f-a684-9504f0e85337"),"descriptions","DES"),
|
32
|
DESCRIPTION_WITH_EDITOR(UUID.fromString("5ab7fd6e-b7c3-42b7-9a75-d3cccb547a96"),"descriptions with editor decisions","DESWE"),
|
33
|
|
34
|
;
|
35
|
@SuppressWarnings("unchecked")
|
36
|
private ConceptDefinition(UUID uuid, String defaultString, String key){
|
37
|
delegateVocTerm = EnumeratedTermVoc.addTerm(getClass(), this, uuid, defaultString, key, null);
|
38
|
}
|
39
|
|
40
|
// *************************** DELEGATE **************************************/
|
41
|
|
42
|
private static EnumeratedTermVoc<ConceptDefinition> delegateVoc;
|
43
|
private IEnumTerm<ConceptDefinition> delegateVocTerm;
|
44
|
|
45
|
static {
|
46
|
delegateVoc = EnumeratedTermVoc.getVoc(ConceptDefinition.class);
|
47
|
}
|
48
|
|
49
|
@Override
|
50
|
public String getKey(){return delegateVocTerm.getKey();}
|
51
|
|
52
|
@Override
|
53
|
public String getLabel(){return delegateVocTerm.getLabel();}
|
54
|
|
55
|
@Override
|
56
|
public String getLabel(Language language){return delegateVocTerm.getLabel(language);}
|
57
|
|
58
|
@Override
|
59
|
public UUID getUuid() {return delegateVocTerm.getUuid();}
|
60
|
|
61
|
@Override
|
62
|
public ConceptDefinition getKindOf() {return delegateVocTerm.getKindOf();}
|
63
|
|
64
|
@Override
|
65
|
public Set<ConceptDefinition> getGeneralizationOf() {return delegateVocTerm.getGeneralizationOf();}
|
66
|
|
67
|
@Override
|
68
|
public boolean isKindOf(ConceptDefinition ancestor) {return delegateVocTerm.isKindOf(ancestor); }
|
69
|
|
70
|
@Override
|
71
|
public Set<ConceptDefinition> getGeneralizationOf(boolean recursive) {return delegateVocTerm.getGeneralizationOf(recursive);}
|
72
|
|
73
|
|
74
|
public static ConceptDefinition getByKey(String key){return delegateVoc.getByKey(key);}
|
75
|
public static ConceptDefinition getByUuid(UUID uuid) {return delegateVoc.getByUuid(uuid);}
|
76
|
|
77
|
//*************************** END DELEGATE *********************************************/
|
78
|
|
79
|
protected static boolean includesType(EnumSet<ConceptDefinition> set, ConceptDefinition definition) {
|
80
|
EnumSet<ConceptDefinition> all;
|
81
|
if (definition.getGeneralizationOf(true).isEmpty()){
|
82
|
all = EnumSet.noneOf(ConceptDefinition.class);
|
83
|
}else{
|
84
|
all = EnumSet.copyOf(definition.getGeneralizationOf(true));
|
85
|
}
|
86
|
all.add(definition);
|
87
|
for (ConceptDefinition def : all){
|
88
|
if (set.contains(def)){
|
89
|
return true;
|
90
|
}
|
91
|
}
|
92
|
return false;
|
93
|
}
|
94
|
}
|