Project

General

Profile

Download (8.41 KB) Statistics
| Branch: | Tag: | Revision:
1 78c2bf74 Katja Luther
/**
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 bedfcc4d ben.clark
package eu.etaxonomy.cdm.datagenerator;
11
12
import java.util.Random;
13 68788da9 Katja Luther
import java.util.UUID;
14 bedfcc4d ben.clark
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 f53af173 Katja Luther
import eu.etaxonomy.cdm.model.reference.IBook;
24
import eu.etaxonomy.cdm.model.reference.IDatabase;
25 1d36aa54 Andreas Müller
import eu.etaxonomy.cdm.model.reference.Reference;
26 f53af173 Katja Luther
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
27 68788da9 Katja Luther
import eu.etaxonomy.cdm.model.taxon.Classification;
28 bedfcc4d ben.clark
import eu.etaxonomy.cdm.model.taxon.Synonym;
29
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
30
import eu.etaxonomy.cdm.model.taxon.Taxon;
31 68788da9 Katja Luther
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
32 bedfcc4d ben.clark
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 68788da9 Katja Luther
	public static UUID GENUS_NAME_UUID = UUID.fromString("8d761fc4-b509-42f4-9568-244161934336");
39 dd7f4987 Katja Luther
	public static UUID GENUS_UUID = UUID.fromString("bf4298a8-1735-4353-a210-244442e1bd62");
40 68788da9 Katja Luther
	public static UUID BASIONYM_UUID = UUID.fromString("7911c51d-ccb7-4708-8992-639eae58a0e3");
41 dd7f4987 Katja Luther
	public static UUID SPECIES1_UUID = UUID.fromString("f0eb77d9-76e0-47f4-813f-9b5605b78685");
42
	public static UUID SPECIES1_NAME_UUID = UUID.fromString("efd78713-126f-42e1-9070-a1ff83f12abf");
43
	public static UUID SYNONYM_NAME_UUID = UUID.fromString("b9cbaa74-dbe0-4930-8050-b7754ce85dc0");
44 68788da9 Katja Luther
	public static UUID SPECIES2_NAME_UUID = UUID.fromString("0267ab67-483e-4da5-b654-11013b242c22");
45 dd7f4987 Katja Luther
	public static UUID SPECIES2_UUID = UUID.fromString("e20eb549-ced6-4e79-9d74-44f0792a4929");
46
	public static UUID SYNONYM2_NAME_UUID = UUID.fromString("7c17c811-4201-454b-8108-7be7c91c0938");
47 68788da9 Katja Luther
	public static UUID SPECIES5_NAME_UUID = UUID.fromString("0c6ecaac-804d-49e5-a33f-1b7ee77439e3");
48 679d8c93 Katja Luther
	//public static UUID DESCRIPTION1_UUID = UUID.fromString("f3e061f6-c5df-465c-a253-1e18ab4c7e50");
49
	//public static UUID DESCRIPTION2_UUID = UUID.fromString("1b009a40-ebff-4f7e-9f7f-75a850ba995d");
50 68788da9 Katja Luther
	
51
	
52 dd7f4987 Katja Luther
	
53 bedfcc4d ben.clark
	private Random rnd = new Random();
54
55
	public static Taxon getTestTaxon(){
56 679d8c93 Katja Luther
		int descrIndex = 6000;
57 bedfcc4d ben.clark
		Person deCandolle = Person.NewInstance();
58 892efc69 Andreas Kohlbecker
		deCandolle.setTitleCache("DC.", true);
59 4842b4bc Andreas Müller
		Reference<?> sec = ReferenceFactory.newDatabase();
60 892efc69 Andreas Kohlbecker
		sec.setTitleCache("Flora lunaea", true);
61 4842b4bc Andreas Müller
		Reference<?> citationRef = ReferenceFactory.newBook();
62 892efc69 Andreas Kohlbecker
		citationRef.setTitleCache("Sp. lunarum", true);
63 bedfcc4d ben.clark
		
64
        //genus taxon with Name, combinationAuthor, 
65
		BotanicalName botName = BotanicalName.NewInstance(Rank.GENUS()); 
66 892efc69 Andreas Kohlbecker
        botName.setTitleCache("Hieracium L.", true); 
67 bedfcc4d ben.clark
        botName.setGenusOrUninomial("Hieracium"); 
68
        botName.setCombinationAuthorTeam(Person.NewInstance()); 
69
        botName.getCombinationAuthorTeam().setNomenclaturalTitle("L."); 
70 68788da9 Katja Luther
        botName.setUuid(GENUS_NAME_UUID);
71 bedfcc4d ben.clark
        Taxon genusTaxon = Taxon.NewInstance(botName, sec); 
72 dd7f4987 Katja Luther
        genusTaxon.setUuid(GENUS_UUID);
73 bedfcc4d ben.clark
                        
74
        //a name that is the basionym of genusTaxon's name
75
        BotanicalName basionym = BotanicalName.NewInstance(Rank.GENUS()); 
76 892efc69 Andreas Kohlbecker
        basionym.setTitleCache("Hieracilla DC.", true); 
77 bedfcc4d ben.clark
        basionym.setGenusOrUninomial("Hieracilla"); 
78
        basionym.setCombinationAuthorTeam(deCandolle); 
79 68788da9 Katja Luther
        basionym.setUuid(BASIONYM_UUID);
80 bd0cabba Andreas Müller
        botName.addBasionym(basionym, null, null,"216");
81 bedfcc4d ben.clark
        
82
        //species taxon that is the child of genus taxon
83
        BotanicalName botSpecies = BotanicalName.NewInstance(Rank.SPECIES()); 
84 892efc69 Andreas Kohlbecker
        botSpecies.setTitleCache("Hieracium asturianum Pau", true); 
85 bedfcc4d ben.clark
        botSpecies.setGenusOrUninomial("Hieracium"); 
86
        botSpecies.setSpecificEpithet("asturianum"); 
87
        botSpecies.setCombinationAuthorTeam(Person.NewInstance()); 
88
        botSpecies.getCombinationAuthorTeam().setNomenclaturalTitle("Pau"); 
89 dd7f4987 Katja Luther
        botSpecies.setUuid(SPECIES1_NAME_UUID);
90 bedfcc4d ben.clark
        Taxon childTaxon = Taxon.NewInstance(botSpecies, sec); 
91 dd7f4987 Katja Luther
        childTaxon.setUuid(SPECIES1_UUID);
92 679d8c93 Katja Luther
        TaxonDescription taxDesc = getTestDescription(descrIndex++);
93
        //taxDesc.setUuid(DESCRIPTION1_UUID);
94
        childTaxon.addDescription(taxDesc);
95 68788da9 Katja Luther
        Classification classification = getTestClassification("TestClassification");
96
        classification.addParentChild(genusTaxon, childTaxon, citationRef, "456");
97
//        childTaxon.setTaxonomicParent(genusTaxon, citationRef, "456"); 
98 bedfcc4d ben.clark
 
99
        //homotypic synonym of childTaxon1
100
        BotanicalName botSpecies4= BotanicalName.NewInstance(Rank.SPECIES()); 
101 892efc69 Andreas Kohlbecker
        botSpecies4.setTitleCache("Hieracium gueri DC.", true); 
102 bedfcc4d ben.clark
        botSpecies4.setGenusOrUninomial("Hieracium"); 
103
        botSpecies4.setSpecificEpithet("gueri"); 
104
        botSpecies4.setCombinationAuthorTeam(deCandolle); 
105 dd7f4987 Katja Luther
        botSpecies4.setUuid(SYNONYM_NAME_UUID);
106 bedfcc4d ben.clark
        Synonym homoSynonym = Synonym.NewInstance(botSpecies4, sec); 
107
        childTaxon.addSynonym(homoSynonym, SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF());
108
109
110
        //2nd child species taxon that is the child of genus taxon
111
        BotanicalName botSpecies2= BotanicalName.NewInstance(Rank.SPECIES()); 
112 892efc69 Andreas Kohlbecker
        botSpecies2.setTitleCache("Hieracium wolffii Zahn", true); 
113 bedfcc4d ben.clark
        botSpecies2.setGenusOrUninomial("Hieracium"); 
114
        botSpecies2.setSpecificEpithet("wolffii"); 
115
        botSpecies2.setCombinationAuthorTeam(Person.NewInstance()); 
116
        botSpecies2.getCombinationAuthorTeam().setNomenclaturalTitle("Zahn"); 
117 68788da9 Katja Luther
        botSpecies2.setUuid(SPECIES2_NAME_UUID);
118 bedfcc4d ben.clark
        Taxon childTaxon2 = Taxon.NewInstance(botSpecies2, sec); 
119 dd7f4987 Katja Luther
        childTaxon2.setUuid(SPECIES2_UUID);
120 68788da9 Katja Luther
        classification.addParentChild(genusTaxon, childTaxon2, citationRef, "499");
121
        //childTaxon2.setTaxonomicParent(genusTaxon, citationRef, "499"); 
122 bedfcc4d ben.clark
        
123
        //heterotypic synonym of childTaxon2
124
        BotanicalName botSpecies3= BotanicalName.NewInstance(Rank.SPECIES()); 
125 892efc69 Andreas Kohlbecker
        botSpecies3.setTitleCache("Hieracium lupium DC.", true); 
126 bedfcc4d ben.clark
        botSpecies3.setGenusOrUninomial("Hieracium"); 
127
        botSpecies3.setSpecificEpithet("lupium"); 
128
        botSpecies3.setCombinationAuthorTeam(deCandolle); 
129 dd7f4987 Katja Luther
        botSpecies3.setUuid(SYNONYM2_NAME_UUID);
130 bedfcc4d ben.clark
        Synonym heteroSynonym = Synonym.NewInstance(botSpecies3, sec); 
131
        childTaxon2.addSynonym(heteroSynonym, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF());
132
133
        //missaplied Name for childTaxon2
134
        BotanicalName missName= BotanicalName.NewInstance(Rank.SPECIES()); 
135 892efc69 Andreas Kohlbecker
        missName.setTitleCache("Hieracium lupium DC.", true); 
136 bedfcc4d ben.clark
        missName.setGenusOrUninomial("Hieracium"); 
137
        missName.setSpecificEpithet("lupium"); 
138
        missName.setCombinationAuthorTeam(deCandolle); 
139 68788da9 Katja Luther
        missName.setUuid(SPECIES5_NAME_UUID);
140 bedfcc4d ben.clark
        Taxon misappliedName = Taxon.NewInstance(missName, sec); 
141
        childTaxon2.addMisappliedName(misappliedName, citationRef, "125");
142 679d8c93 Katja Luther
        taxDesc = getTestDescription(descrIndex++);
143
       // taxDesc.setUuid(DESCRIPTION2_UUID);
144
        genusTaxon.addDescription(taxDesc);
145 e321340c Katja Luther
       
146 bedfcc4d ben.clark
        
147
        return genusTaxon; 
148
	}
149
	
150 679d8c93 Katja Luther
	public static TaxonDescription getTestDescription(int index){
151 bedfcc4d ben.clark
		TaxonDescription taxonDescription = TaxonDescription.NewInstance();
152
		Language language = Language.DEFAULT();
153 679d8c93 Katja Luther
		//taxonDescription.setId(index);
154 bedfcc4d ben.clark
		
155
		//textData
156
		TextData textData = TextData.NewInstance();
157
		String descriptionText = "this is a desciption for a taxon";
158
		LanguageString languageString = LanguageString.NewInstance(descriptionText, language);
159
		textData.putText(languageString);
160
		taxonDescription.addElement(textData);
161
		
162
		//commonName
163 68788da9 Katja Luther
		
164 b2fce33e n.hoffmann
		String commonNameString = "Schönveilchen";
165 bedfcc4d ben.clark
		CommonTaxonName commonName = CommonTaxonName.NewInstance(commonNameString, language);
166
		taxonDescription.addElement(commonName);
167
		
168
		return taxonDescription;
169
	}
170 68788da9 Katja Luther
	
171
	public static Classification getTestClassification(String name){
172
		return Classification.NewInstance(name);
173
	}
174 bedfcc4d ben.clark
}