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
;
26 public enum ConceptStatus
27 implements IEnumTerm
<ConceptStatus
>{
29 PERSISTENT(UUID
.fromString("08ae05a9-2d61-4c6d-b005-5d47d0139eff"),"persistent","PER"),
30 SUPPORTS_PROVENANCE(UUID
.fromString("1f0417cb-72ae-4a0e-a2fa-cce0de2c462a"),"supports provenance","PRO"),
31 CURRENT(UUID
.fromString("fba936d3-e871-4993-b29c-20a846a112d7"),"current","CUR")
34 @SuppressWarnings("unchecked")
35 private ConceptStatus(UUID uuid
, String defaultString
, String key
){
36 delegateVocTerm
= EnumeratedTermVoc
.addTerm(getClass(), this, uuid
, defaultString
, key
, null);
39 // *************************** DELEGATE **************************************/
41 private static EnumeratedTermVoc
<ConceptStatus
> delegateVoc
;
42 private IEnumTerm
<ConceptStatus
> delegateVocTerm
;
45 delegateVoc
= EnumeratedTermVoc
.getVoc(ConceptStatus
.class);
49 public String
getKey(){return delegateVocTerm
.getKey();}
52 public String
getLabel(){return delegateVocTerm
.getLabel();}
55 public String
getLabel(Language language
){return delegateVocTerm
.getLabel(language
);}
58 public UUID
getUuid() {return delegateVocTerm
.getUuid();}
61 public ConceptStatus
getKindOf() {return delegateVocTerm
.getKindOf();}
64 public Set
<ConceptStatus
> getGeneralizationOf() {return delegateVocTerm
.getGeneralizationOf();}
67 public boolean isKindOf(ConceptStatus ancestor
) {return delegateVocTerm
.isKindOf(ancestor
); }
70 public Set
<ConceptStatus
> getGeneralizationOf(boolean recursive
) {return delegateVocTerm
.getGeneralizationOf(recursive
);}
73 public static ConceptStatus
getByKey(String key
){return delegateVoc
.getByKey(key
);}
74 public static ConceptStatus
getByUuid(UUID uuid
) {return delegateVoc
.getByUuid(uuid
);}
76 //*************************** END DELEGATE *********************************************/
78 protected static boolean includesType(EnumSet
<ConceptStatus
> set
, ConceptStatus status
) {
79 EnumSet
<ConceptStatus
> all
;
80 if (status
.getGeneralizationOf(true).isEmpty()){
81 all
= EnumSet
.noneOf(ConceptStatus
.class);
83 all
= EnumSet
.copyOf(status
.getGeneralizationOf(true));
86 for (ConceptStatus st
: all
){
87 if (set
.contains(st
)){