Project

General

Profile

Download (5.84 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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

    
10
package eu.etaxonomy.cdm.datagenerator;
11

    
12
import eu.etaxonomy.cdm.model.agent.Person;
13
import eu.etaxonomy.cdm.model.common.Language;
14
import eu.etaxonomy.cdm.model.common.LanguageString;
15
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
16
import eu.etaxonomy.cdm.model.description.TaxonDescription;
17
import eu.etaxonomy.cdm.model.description.TextData;
18
import eu.etaxonomy.cdm.model.name.BotanicalName;
19
import eu.etaxonomy.cdm.model.name.Rank;
20
import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
21
import eu.etaxonomy.cdm.model.reference.Reference;
22
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
23
import eu.etaxonomy.cdm.model.taxon.Synonym;
24
import eu.etaxonomy.cdm.model.taxon.SynonymType;
25
import eu.etaxonomy.cdm.model.taxon.Taxon;
26

    
27
/**
28
 * This class offers functionality to create test taxa and descriptions.
29
 *
30
 * @author m.doering
31
 *
32
 */
33
public class TaxonGenerator {
34
	private static String[] genera = {"Carex", "Abies", "Belladonna", "Dracula", "Maria", "Calendula", "Polygala", "Vincia"};
35
	private static String[] epitheta = {"vulgaris", "magdalena", "officinalis", "alba", "negra", "communa", "alpina", "rotundifolia", "greutheriana", "helventica", "allemania", "franca"};
36
	private static String[] ranks = {"subsp", "var", "f"};
37

    
38
	public static Taxon getTestTaxon(){
39
		Person deCandolle = Person.NewInstance();
40
		deCandolle.setTitleCache("DC.", true);
41
		Reference sec = ReferenceFactory.newDatabase();
42
		sec.setTitleCache("Flora lunaea", true);
43
		Reference citationRef = ReferenceFactory.newBook();
44
		citationRef.setTitleCache("Sp. lunarum", true);
45

    
46
        //genus taxon with Name, combinationAuthor,
47
		BotanicalName botName = TaxonNameFactory.NewBotanicalInstance(Rank.GENUS());
48
        botName.setTitleCache("Hieracium L.", true);
49
        botName.setGenusOrUninomial("Hieracium");
50
        botName.setCombinationAuthorship(Person.NewInstance());
51
        botName.getCombinationAuthorship().setNomenclaturalTitle("L.");
52
        Taxon genusTaxon = Taxon.NewInstance(botName, sec);
53

    
54
        //a name that is the basionym of genusTaxon's name
55
        BotanicalName basionym = TaxonNameFactory.NewBotanicalInstance(Rank.GENUS());
56
        basionym.setTitleCache("Hieracilla DC.", true);
57
        basionym.setGenusOrUninomial("Hieracilla");
58
        basionym.setCombinationAuthorship(deCandolle);
59
        botName.addBasionym(basionym, null, null, "216");
60

    
61
        //species taxon that is the child of genus taxon
62
        BotanicalName botSpecies = TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());
63
        botSpecies.setTitleCache("Hieracium asturianum Pau", true);
64
        botSpecies.setGenusOrUninomial("Hieracium");
65
        botSpecies.setSpecificEpithet("asturianum");
66
        botSpecies.setCombinationAuthorship(Person.NewInstance());
67
        botSpecies.getCombinationAuthorship().setNomenclaturalTitle("Pau");
68
        Taxon childTaxon = Taxon.NewInstance(botSpecies, sec);
69

    
70
        //homotypic synonym of childTaxon1
71
        BotanicalName botSpecies4= TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());
72
        botSpecies4.setTitleCache("Hieracium gueri DC.", true);
73
        botSpecies4.setGenusOrUninomial("Hieracium");
74
        botSpecies4.setSpecificEpithet("gueri");
75
        botSpecies4.setCombinationAuthorship(deCandolle);
76
        Synonym homoSynonym = Synonym.NewInstance(botSpecies4, sec);
77
        childTaxon.addSynonym(homoSynonym, SynonymType.HOMOTYPIC_SYNONYM_OF());
78

    
79

    
80
        //2nd child species taxon that is the child of genus taxon
81
        BotanicalName botSpecies2= TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());
82
        botSpecies2.setTitleCache("Hieracium wolffii Zahn", true);
83
        botSpecies2.setGenusOrUninomial("Hieracium");
84
        botSpecies2.setSpecificEpithet("wolffii");
85
        botSpecies2.setCombinationAuthorship(Person.NewInstance());
86
        botSpecies2.getCombinationAuthorship().setNomenclaturalTitle("Zahn");
87
        Taxon childTaxon2 = Taxon.NewInstance(botSpecies2, sec);
88

    
89
        //heterotypic synonym of childTaxon2
90
        BotanicalName botSpecies3= TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());
91
        botSpecies3.setTitleCache("Hieracium lupium DC.", true);
92
        botSpecies3.setGenusOrUninomial("Hieracium");
93
        botSpecies3.setSpecificEpithet("lupium");
94
        botSpecies3.setCombinationAuthorship(deCandolle);
95
        Synonym heteroSynonym = Synonym.NewInstance(botSpecies3, sec);
96
        childTaxon2.addSynonym(heteroSynonym, SynonymType.HETEROTYPIC_SYNONYM_OF());
97

    
98
        //missaplied Name for childTaxon2
99
        BotanicalName missName= TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());
100
        missName.setTitleCache("Hieracium lupium DC.", true);
101
        missName.setGenusOrUninomial("Hieracium");
102
        missName.setSpecificEpithet("lupium");
103
        missName.setCombinationAuthorship(deCandolle);
104
        Taxon misappliedName = Taxon.NewInstance(missName, sec);
105
        childTaxon2.addMisappliedName(misappliedName, citationRef, "125");
106

    
107
        genusTaxon.addDescription(getTestDescription());
108

    
109
        return genusTaxon;
110
	}
111

    
112
	public static TaxonDescription getTestDescription(){
113
		TaxonDescription taxonDescription = TaxonDescription.NewInstance();
114
		Language language = Language.DEFAULT();
115

    
116
		//textData
117
		TextData textData = TextData.NewInstance();
118
		String descriptionText = "this is a desciption for a taxon";
119
		LanguageString languageString = LanguageString.NewInstance(descriptionText, language);
120
		textData.putText(languageString);
121
		taxonDescription.addElement(textData);
122

    
123
		//commonName
124
		String commonNameString = "Schönveilchen";
125
		CommonTaxonName commonName = CommonTaxonName.NewInstance(commonNameString, language);
126
		taxonDescription.addElement(commonName);
127

    
128
		return taxonDescription;
129
	}
130
}
    (1-1/1)