Project

General

Profile

Download (8.08 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 java.util.Random;
13
import java.util.UUID;
14

    
15
import eu.etaxonomy.cdm.model.agent.Person;
16
import eu.etaxonomy.cdm.model.common.Language;
17
import eu.etaxonomy.cdm.model.common.LanguageString;
18
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
19
import eu.etaxonomy.cdm.model.description.TaxonDescription;
20
import eu.etaxonomy.cdm.model.description.TextData;
21
import eu.etaxonomy.cdm.model.name.BotanicalName;
22
import eu.etaxonomy.cdm.model.name.Rank;
23
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
24
import eu.etaxonomy.cdm.model.reference.Reference;
25
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
26
import eu.etaxonomy.cdm.model.taxon.Classification;
27
import eu.etaxonomy.cdm.model.taxon.Synonym;
28
import eu.etaxonomy.cdm.model.taxon.SynonymType;
29
import eu.etaxonomy.cdm.model.taxon.Taxon;
30

    
31
public class TaxonGenerator {
32
	private static String[] genera = {"Carex", "Abies", "Belladonna", "Dracula", "Maria", "Calendula", "Polygala", "Vincia"};
33
	private static String[] epitheta = {"vulgaris", "magdalena", "officinalis", "alba", "negra", "communa", "alpina", "rotundifolia", "greutheriana", "helventica", "allemania", "franca"};
34
	private static String[] ranks = {"subsp", "var", "f"};
35

    
36
	public static UUID GENUS_NAME_UUID = UUID.fromString("8d761fc4-b509-42f4-9568-244161934336");
37
	public static UUID GENUS_UUID = UUID.fromString("bf4298a8-1735-4353-a210-244442e1bd62");
38
	public static UUID BASIONYM_UUID = UUID.fromString("7911c51d-ccb7-4708-8992-639eae58a0e3");
39
	public static UUID SPECIES1_UUID = UUID.fromString("f0eb77d9-76e0-47f4-813f-9b5605b78685");
40
	public static UUID SPECIES1_NAME_UUID = UUID.fromString("efd78713-126f-42e1-9070-a1ff83f12abf");
41
	public static UUID SYNONYM_NAME_UUID = UUID.fromString("b9cbaa74-dbe0-4930-8050-b7754ce85dc0");
42
	public static UUID SPECIES2_NAME_UUID = UUID.fromString("0267ab67-483e-4da5-b654-11013b242c22");
43
	public static UUID SPECIES2_UUID = UUID.fromString("e20eb549-ced6-4e79-9d74-44f0792a4929");
44
	public static UUID SYNONYM2_NAME_UUID = UUID.fromString("7c17c811-4201-454b-8108-7be7c91c0938");
45
	public static UUID SPECIES5_NAME_UUID = UUID.fromString("0c6ecaac-804d-49e5-a33f-1b7ee77439e3");
46
	//public static UUID DESCRIPTION1_UUID = UUID.fromString("f3e061f6-c5df-465c-a253-1e18ab4c7e50");
47
	//public static UUID DESCRIPTION2_UUID = UUID.fromString("1b009a40-ebff-4f7e-9f7f-75a850ba995d");
48

    
49

    
50

    
51
	private final Random rnd = new Random();
52

    
53
	public static Taxon getTestTaxon(){
54
		int descrIndex = 6000;
55
		Person deCandolle = Person.NewInstance();
56
		deCandolle.setTitleCache("DC.", true);
57

    
58
		Reference sec = ReferenceFactory.newDatabase();
59
		sec.setTitleCache("Flora lunaea", true);
60
		Reference citationRef = ReferenceFactory.newBook();
61
		citationRef.setTitleCache("Sp. lunarum", true);
62

    
63
        //genus taxon with Name, combinationAuthor,
64
		BotanicalName botName = TaxonNameBase.NewBotanicalInstance(Rank.GENUS());
65
        botName.setTitleCache("Hieracium L.", true);
66
        botName.setGenusOrUninomial("Hieracium");
67
        botName.setCombinationAuthorship(Person.NewInstance());
68
        botName.getCombinationAuthorship().setNomenclaturalTitle("L.");
69
        botName.setUuid(GENUS_NAME_UUID);
70
        Taxon genusTaxon = Taxon.NewInstance(botName, sec);
71
        genusTaxon.setUuid(GENUS_UUID);
72

    
73
        //a name that is the basionym of genusTaxon's name
74
        BotanicalName basionym = TaxonNameBase.NewBotanicalInstance(Rank.GENUS());
75
        basionym.setTitleCache("Hieracilla DC.", true);
76
        basionym.setGenusOrUninomial("Hieracilla");
77
        basionym.setCombinationAuthorship(deCandolle);
78
        basionym.setUuid(BASIONYM_UUID);
79
        botName.addBasionym(basionym, null, null,"216");
80

    
81
        //species taxon that is the child of genus taxon
82
        BotanicalName botSpecies = TaxonNameBase.NewBotanicalInstance(Rank.SPECIES());
83
        botSpecies.setTitleCache("Hieracium asturianum Pau", true);
84
        botSpecies.setGenusOrUninomial("Hieracium");
85
        botSpecies.setSpecificEpithet("asturianum");
86
        botSpecies.setCombinationAuthorship(Person.NewInstance());
87
        botSpecies.getCombinationAuthorship().setNomenclaturalTitle("Pau");
88
        botSpecies.setUuid(SPECIES1_NAME_UUID);
89
        Taxon childTaxon = Taxon.NewInstance(botSpecies, sec);
90
        childTaxon.setUuid(SPECIES1_UUID);
91
        TaxonDescription taxDesc = getTestDescription(descrIndex++);
92
        //taxDesc.setUuid(DESCRIPTION1_UUID);
93
        childTaxon.addDescription(taxDesc);
94

    
95
        Classification classification = getTestClassification("TestClassification");
96
        classification.addParentChild(genusTaxon, childTaxon, citationRef, "456");
97

    
98
        //homotypic synonym of childTaxon1
99
        BotanicalName botSpecies4= TaxonNameBase.NewBotanicalInstance(Rank.SPECIES());
100
        botSpecies4.setTitleCache("Hieracium gueri DC.", true);
101
        botSpecies4.setGenusOrUninomial("Hieracium");
102
        botSpecies4.setSpecificEpithet("gueri");
103
        botSpecies4.setCombinationAuthorship(deCandolle);
104
        botSpecies4.setUuid(SYNONYM_NAME_UUID);
105
        Synonym homoSynonym = Synonym.NewInstance(botSpecies4, sec);
106
        childTaxon.addSynonym(homoSynonym, SynonymType.HOMOTYPIC_SYNONYM_OF());
107

    
108

    
109
        //2nd child species taxon that is the child of genus taxon
110
        BotanicalName botSpecies2= TaxonNameBase.NewBotanicalInstance(Rank.SPECIES());
111
        botSpecies2.setTitleCache("Hieracium wolffii Zahn", true);
112
        botSpecies2.setGenusOrUninomial("Hieracium");
113
        botSpecies2.setSpecificEpithet("wolffii");
114
        botSpecies2.setCombinationAuthorship(Person.NewInstance());
115
        botSpecies2.getCombinationAuthorship().setNomenclaturalTitle("Zahn");
116
        botSpecies2.setUuid(SPECIES2_NAME_UUID);
117
        Taxon childTaxon2 = Taxon.NewInstance(botSpecies2, sec);
118
        childTaxon2.setUuid(SPECIES2_UUID);
119
        classification.addParentChild(genusTaxon, childTaxon2, citationRef, "499");
120

    
121
        //heterotypic synonym of childTaxon2
122
        BotanicalName botSpecies3= TaxonNameBase.NewBotanicalInstance(Rank.SPECIES());
123
        botSpecies3.setTitleCache("Hieracium lupium DC.", true);
124
        botSpecies3.setGenusOrUninomial("Hieracium");
125
        botSpecies3.setSpecificEpithet("lupium");
126
        botSpecies3.setCombinationAuthorship(deCandolle);
127
        botSpecies3.setUuid(SYNONYM2_NAME_UUID);
128
        Synonym heteroSynonym = Synonym.NewInstance(botSpecies3, sec);
129
        childTaxon2.addSynonym(heteroSynonym, SynonymType.HETEROTYPIC_SYNONYM_OF());
130

    
131
        //missaplied Name for childTaxon2
132
        BotanicalName missName= TaxonNameBase.NewBotanicalInstance(Rank.SPECIES());
133
        missName.setTitleCache("Hieracium lupium DC.", true);
134
        missName.setGenusOrUninomial("Hieracium");
135
        missName.setSpecificEpithet("lupium");
136
        missName.setCombinationAuthorship(deCandolle);
137
        missName.setUuid(SPECIES5_NAME_UUID);
138
        Taxon misappliedName = Taxon.NewInstance(missName, sec);
139
        childTaxon2.addMisappliedName(misappliedName, citationRef, "125");
140
        taxDesc = getTestDescription(descrIndex++);
141
       // taxDesc.setUuid(DESCRIPTION2_UUID);
142
        genusTaxon.addDescription(taxDesc);
143

    
144

    
145
        return genusTaxon;
146
	}
147

    
148
	public static TaxonDescription getTestDescription(int index){
149
		TaxonDescription taxonDescription = TaxonDescription.NewInstance();
150
		Language language = Language.DEFAULT();
151
		//taxonDescription.setId(index);
152

    
153
		//textData
154
		TextData textData = TextData.NewInstance();
155
		String descriptionText = "this is a desciption for a taxon";
156
		LanguageString languageString = LanguageString.NewInstance(descriptionText, language);
157
		textData.putText(languageString);
158
		taxonDescription.addElement(textData);
159

    
160
		//commonName
161

    
162
		String commonNameString = "Schönveilchen";
163
		CommonTaxonName commonName = CommonTaxonName.NewInstance(commonNameString, language);
164
		taxonDescription.addElement(commonName);
165

    
166
		return taxonDescription;
167
	}
168

    
169
	public static Classification getTestClassification(String name){
170
		return Classification.NewInstance(name);
171
	}
172
}
    (1-1/1)