Project

General

Profile

Download (5.9 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.IBotanicalName;
19
import eu.etaxonomy.cdm.model.name.Rank;
20
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
21
import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
22
import eu.etaxonomy.cdm.model.reference.Reference;
23
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
24
import eu.etaxonomy.cdm.model.taxon.Synonym;
25
import eu.etaxonomy.cdm.model.taxon.SynonymType;
26
import eu.etaxonomy.cdm.model.taxon.Taxon;
27

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

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

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

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

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

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

    
80

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

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

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

    
108
        genusTaxon.addDescription(getTestDescription());
109

    
110
        return genusTaxon;
111
	}
112

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

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

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

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