Project

General

Profile

Download (3.27 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(3-3/19)