2 * Copyright (C) 2021 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.cdm
.model
.taxon
;
11 import java
.util
.EnumSet
;
13 import java
.util
.UUID
;
15 import javax
.xml
.bind
.annotation
.XmlEnum
;
17 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
18 import eu
.etaxonomy
.cdm
.model
.term
.EnumeratedTermVoc
;
19 import eu
.etaxonomy
.cdm
.model
.term
.IEnumTerm
;
27 implements IEnumTerm
<TaxonType
>{
29 CONCEPT(UUID
.fromString("d6e65c50-729a-4c80-8ec0-d30627c8b2f0"), "Concept","CO"),
30 NAME_USAGE(UUID
.fromString("a3ffccb8-8408-4fb4-8e38-9ffe84ca804f"), "Name Usage","NU"),
33 @SuppressWarnings("unchecked")
34 private TaxonType(UUID uuid
, String defaultString
, String key
){
35 delegateVocTerm
= EnumeratedTermVoc
.addTerm(getClass(), this, uuid
, defaultString
, key
, null);
38 // *************************** DELEGATE **************************************/
40 private static EnumeratedTermVoc
<TaxonType
> delegateVoc
;
41 private IEnumTerm
<TaxonType
> delegateVocTerm
;
44 delegateVoc
= EnumeratedTermVoc
.getVoc(TaxonType
.class);
48 public String
getKey(){return delegateVocTerm
.getKey();}
51 public String
getLabel(){return delegateVocTerm
.getLabel();}
54 public String
getLabel(Language language
){return delegateVocTerm
.getLabel(language
);}
57 public UUID
getUuid() {return delegateVocTerm
.getUuid();}
60 public TaxonType
getKindOf() {return delegateVocTerm
.getKindOf();}
63 public Set
<TaxonType
> getGeneralizationOf() {return delegateVocTerm
.getGeneralizationOf();}
66 public boolean isKindOf(TaxonType ancestor
) {return delegateVocTerm
.isKindOf(ancestor
); }
69 public Set
<TaxonType
> getGeneralizationOf(boolean recursive
) {return delegateVocTerm
.getGeneralizationOf(recursive
);}
71 public static TaxonType
getByKey(String key
){return delegateVoc
.getByKey(key
);}
72 public static TaxonType
getByUuid(UUID uuid
) {return delegateVoc
.getByUuid(uuid
);}
74 //*************************** END DELEGATE *********************************************/
76 protected static boolean includesType(EnumSet
<TaxonType
> set
, TaxonType type
) {
77 EnumSet
<TaxonType
> all
;
78 if (type
.getGeneralizationOf(true).isEmpty()){
79 all
= EnumSet
.noneOf(TaxonType
.class);
81 all
= EnumSet
.copyOf(type
.getGeneralizationOf(true));
84 for (TaxonType st
: all
){
85 if (set
.contains(st
)){