Project

General

Profile

Download (2.44 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.remote.dto.oaipmh;
2

    
3
import javax.xml.bind.annotation.XmlEnum;
4

    
5
import eu.etaxonomy.cdm.model.agent.Institution;
6
import eu.etaxonomy.cdm.model.agent.Person;
7
import eu.etaxonomy.cdm.model.agent.Team;
8
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
9
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
10
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
11
import eu.etaxonomy.cdm.model.description.TaxonDescription;
12
import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
13
import eu.etaxonomy.cdm.model.name.TaxonName;
14
import eu.etaxonomy.cdm.model.reference.Reference;
15
import eu.etaxonomy.cdm.model.taxon.Synonym;
16
import eu.etaxonomy.cdm.model.taxon.Taxon;
17

    
18
@XmlEnum
19
public enum SetSpec {
20
	PERSON("person","People", Person.class,null),
21
	TEAM("team","Teams of People", Team.class,null),
22
	INSTITUTION("institution", "Institutions & Organisations", Institution.class,null),
23
	TEAM_OR_PERSON("teamOrPerson", "Teams of individuals and individuals", TeamOrPersonBase.class,new SetSpec[]{TEAM,PERSON}),
24
	TAXON("taxon","Accepted Taxon Concepts", Taxon.class,null),
25
	SYNONYM("synonym","Synonyms", Synonym.class,null),
26
	BACTERIAL_NAME("taxonName", "Scientific Taxon Names", TaxonName.class,null),
27
	TAXON_DESCRIPTION("taxonDescription","Descriptions of taxonomic concepts",TaxonDescription.class,null),
28
	TAXON_NAME_DESCRIPTION("taxonNameDescription","Descriptions of scientific names",TaxonNameDescription.class,null),
29
	SPECIMEN_DESCRIPTION("specimenDescription","Descriptions of specimens and occurrences",SpecimenDescription.class,null),
30
	REFERENCE("reference","Any kind of Reference",Reference.class,null);
31

    
32
	private String spec;
33
	private String name;
34
	private SetSpec[] innerSets;
35
	private Class<? extends IdentifiableEntity> setClass;
36

    
37
	private SetSpec(String spec, String name, Class<? extends IdentifiableEntity> setClass,SetSpec[] innerSets) {
38
		this.setClass = setClass;
39
		this.innerSets = innerSets;
40
		this.spec = spec;
41
		this.name = name;
42
	}
43

    
44
	public Class<? extends IdentifiableEntity> getSetClass() {
45
		return setClass;
46
	}
47

    
48
	public SetSpec[] getInnerSets() {
49
		return innerSets;
50
	}
51

    
52
    public String getName() {
53
    	return name;
54
    }
55

    
56
    public String getSpec() {
57
    	return spec;
58
    }
59

    
60
    public static SetSpec bySpec(String spec){
61
    	for(SetSpec setSpec : SetSpec.values()) {
62
			if(setSpec.getSpec().equals(spec)) {
63
				return setSpec;
64
			}
65
		}
66
    	return null;
67
    }
68
}
(24-24/27)