1 package eu
.etaxonomy
.cdm
.remote
.dto
.oaipmh
;
3 import javax
.xml
.bind
.annotation
.XmlEnum
;
4 import javax
.xml
.bind
.annotation
.XmlEnumValue
;
6 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableEntity
;
7 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
8 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
9 import eu
.etaxonomy
.cdm
.model
.agent
.Institution
;
10 import eu
.etaxonomy
.cdm
.model
.agent
.TeamOrPersonBase
;
11 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
12 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
13 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
14 import eu
.etaxonomy
.cdm
.model
.name
.BacterialName
;
15 import eu
.etaxonomy
.cdm
.model
.name
.BotanicalName
;
16 import eu
.etaxonomy
.cdm
.model
.name
.CultivarPlantName
;
17 import eu
.etaxonomy
.cdm
.model
.name
.ZoologicalName
;
18 import eu
.etaxonomy
.cdm
.model
.name
.ViralName
;
19 import eu
.etaxonomy
.cdm
.model
.name
.NonViralName
;
20 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
21 import eu
.etaxonomy
.cdm
.model
.description
.TaxonNameDescription
;
22 import eu
.etaxonomy
.cdm
.model
.description
.SpecimenDescription
;
26 PERSON("person","People",Person
.class,null),
27 TEAM("team","Teams of People",Team
.class,null),
28 INSTITUTION("institution", "Institutions & Organisations",Institution
.class,null),
29 TEAM_OR_PERSON("teamOrPerson", "Teams of individuals and individuals",TeamOrPersonBase
.class,new SetSpec
[]{TEAM
,PERSON
}),
30 TAXON("taxon","Accepted Taxon Concepts",Taxon
.class,null),
31 SYNONYM("synonym","Synonyms",Synonym
.class,null),
32 BACTERIAL_NAME("bacterialName", "Scientific Names governed by the ICNB",BacterialName
.class,null),
33 CULTIVAR_PLANT_NAME("cultivarPlantName","Scientific Names governed by the ICNCP",CultivarPlantName
.class,null),
34 BOTANICAL_NAME("botanicalName","Scientific Names governed by the ICBN",BotanicalName
.class,new SetSpec
[]{CULTIVAR_PLANT_NAME
}),
35 ZOOLOGICAL_NAME("zoologicalName","Scientific Names governed by the ICZN",ZoologicalName
.class,null),
36 NONVIRAL_NAME("nonviralName","Scientific Names governed by the ICNB, ICNCP, ICBN, or ICZN",NonViralName
.class,new SetSpec
[]{BACTERIAL_NAME
,BOTANICAL_NAME
,ZOOLOGICAL_NAME
}),
37 VIRAL_NAME("viralName","Scientific Names governed by the ICTV",ViralName
.class,null),
38 TAXON_DESCRIPTION("taxonDescription","Descriptions of taxonomic concepts",TaxonDescription
.class,null),
39 TAXON_NAME_DESCRIPTION("taxonNameDescription","Descriptions of scientific names",TaxonNameDescription
.class,null),
40 SPECIMEN_DESCRIPTION("specimenDescription","Descriptions of specimens and occurrences",SpecimenDescription
.class,null),
41 REFERENCE("reference","Any kind of Reference",Reference
.class,null);
45 private SetSpec
[] innerSets
;
46 private Class
<?
extends IdentifiableEntity
> setClass
;
48 private SetSpec(String spec
, String name
, Class
<?
extends IdentifiableEntity
> setClass
,SetSpec
[] innerSets
) {
49 this.setClass
= setClass
;
50 this.innerSets
= innerSets
;
55 public Class
<?
extends IdentifiableEntity
> getSetClass() {
59 public SetSpec
[] getInnerSets() {
63 public String
getName() {
67 public String
getSpec() {
71 public static SetSpec
bySpec(String spec
){
72 for(SetSpec setSpec
: SetSpec
.values()) {
73 if(setSpec
.getSpec().equals(spec
)) {