Project

General

Profile

Download (8.41 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.reference.IBook;
24
import eu.etaxonomy.cdm.model.reference.IDatabase;
25
import eu.etaxonomy.cdm.model.reference.Reference;
26
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
27
import eu.etaxonomy.cdm.model.taxon.Classification;
28
import eu.etaxonomy.cdm.model.taxon.Synonym;
29
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
30
import eu.etaxonomy.cdm.model.taxon.Taxon;
31
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
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 UUID GENUS_NAME_UUID = UUID.fromString("8d761fc4-b509-42f4-9568-244161934336");
39
	public static UUID GENUS_UUID = UUID.fromString("bf4298a8-1735-4353-a210-244442e1bd62");
40
	public static UUID BASIONYM_UUID = UUID.fromString("7911c51d-ccb7-4708-8992-639eae58a0e3");
41
	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
	public static UUID SPECIES2_NAME_UUID = UUID.fromString("0267ab67-483e-4da5-b654-11013b242c22");
45
	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
	public static UUID SPECIES5_NAME_UUID = UUID.fromString("0c6ecaac-804d-49e5-a33f-1b7ee77439e3");
48
	//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
	
51
	
52
	
53
	private Random rnd = new Random();
54

    
55
	public static Taxon getTestTaxon(){
56
		int descrIndex = 6000;
57
		Person deCandolle = Person.NewInstance();
58
		deCandolle.setTitleCache("DC.", true);
59
		Reference<?> sec = ReferenceFactory.newDatabase();
60
		sec.setTitleCache("Flora lunaea", true);
61
		Reference<?> citationRef = ReferenceFactory.newBook();
62
		citationRef.setTitleCache("Sp. lunarum", true);
63
		
64
        //genus taxon with Name, combinationAuthor, 
65
		BotanicalName botName = BotanicalName.NewInstance(Rank.GENUS()); 
66
        botName.setTitleCache("Hieracium L.", true); 
67
        botName.setGenusOrUninomial("Hieracium"); 
68
        botName.setCombinationAuthorTeam(Person.NewInstance()); 
69
        botName.getCombinationAuthorTeam().setNomenclaturalTitle("L."); 
70
        botName.setUuid(GENUS_NAME_UUID);
71
        Taxon genusTaxon = Taxon.NewInstance(botName, sec); 
72
        genusTaxon.setUuid(GENUS_UUID);
73
                        
74
        //a name that is the basionym of genusTaxon's name
75
        BotanicalName basionym = BotanicalName.NewInstance(Rank.GENUS()); 
76
        basionym.setTitleCache("Hieracilla DC.", true); 
77
        basionym.setGenusOrUninomial("Hieracilla"); 
78
        basionym.setCombinationAuthorTeam(deCandolle); 
79
        basionym.setUuid(BASIONYM_UUID);
80
        botName.addBasionym(basionym, null, null,"216");
81
        
82
        //species taxon that is the child of genus taxon
83
        BotanicalName botSpecies = BotanicalName.NewInstance(Rank.SPECIES()); 
84
        botSpecies.setTitleCache("Hieracium asturianum Pau", true); 
85
        botSpecies.setGenusOrUninomial("Hieracium"); 
86
        botSpecies.setSpecificEpithet("asturianum"); 
87
        botSpecies.setCombinationAuthorTeam(Person.NewInstance()); 
88
        botSpecies.getCombinationAuthorTeam().setNomenclaturalTitle("Pau"); 
89
        botSpecies.setUuid(SPECIES1_NAME_UUID);
90
        Taxon childTaxon = Taxon.NewInstance(botSpecies, sec); 
91
        childTaxon.setUuid(SPECIES1_UUID);
92
        TaxonDescription taxDesc = getTestDescription(descrIndex++);
93
        //taxDesc.setUuid(DESCRIPTION1_UUID);
94
        childTaxon.addDescription(taxDesc);
95
        Classification classification = getTestClassification("TestClassification");
96
        classification.addParentChild(genusTaxon, childTaxon, citationRef, "456");
97
//        childTaxon.setTaxonomicParent(genusTaxon, citationRef, "456"); 
98
 
99
        //homotypic synonym of childTaxon1
100
        BotanicalName botSpecies4= BotanicalName.NewInstance(Rank.SPECIES()); 
101
        botSpecies4.setTitleCache("Hieracium gueri DC.", true); 
102
        botSpecies4.setGenusOrUninomial("Hieracium"); 
103
        botSpecies4.setSpecificEpithet("gueri"); 
104
        botSpecies4.setCombinationAuthorTeam(deCandolle); 
105
        botSpecies4.setUuid(SYNONYM_NAME_UUID);
106
        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
        botSpecies2.setTitleCache("Hieracium wolffii Zahn", true); 
113
        botSpecies2.setGenusOrUninomial("Hieracium"); 
114
        botSpecies2.setSpecificEpithet("wolffii"); 
115
        botSpecies2.setCombinationAuthorTeam(Person.NewInstance()); 
116
        botSpecies2.getCombinationAuthorTeam().setNomenclaturalTitle("Zahn"); 
117
        botSpecies2.setUuid(SPECIES2_NAME_UUID);
118
        Taxon childTaxon2 = Taxon.NewInstance(botSpecies2, sec); 
119
        childTaxon2.setUuid(SPECIES2_UUID);
120
        classification.addParentChild(genusTaxon, childTaxon2, citationRef, "499");
121
        //childTaxon2.setTaxonomicParent(genusTaxon, citationRef, "499"); 
122
        
123
        //heterotypic synonym of childTaxon2
124
        BotanicalName botSpecies3= BotanicalName.NewInstance(Rank.SPECIES()); 
125
        botSpecies3.setTitleCache("Hieracium lupium DC.", true); 
126
        botSpecies3.setGenusOrUninomial("Hieracium"); 
127
        botSpecies3.setSpecificEpithet("lupium"); 
128
        botSpecies3.setCombinationAuthorTeam(deCandolle); 
129
        botSpecies3.setUuid(SYNONYM2_NAME_UUID);
130
        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
        missName.setTitleCache("Hieracium lupium DC.", true); 
136
        missName.setGenusOrUninomial("Hieracium"); 
137
        missName.setSpecificEpithet("lupium"); 
138
        missName.setCombinationAuthorTeam(deCandolle); 
139
        missName.setUuid(SPECIES5_NAME_UUID);
140
        Taxon misappliedName = Taxon.NewInstance(missName, sec); 
141
        childTaxon2.addMisappliedName(misappliedName, citationRef, "125");
142
        taxDesc = getTestDescription(descrIndex++);
143
       // taxDesc.setUuid(DESCRIPTION2_UUID);
144
        genusTaxon.addDescription(taxDesc);
145
       
146
        
147
        return genusTaxon; 
148
	}
149
	
150
	public static TaxonDescription getTestDescription(int index){
151
		TaxonDescription taxonDescription = TaxonDescription.NewInstance();
152
		Language language = Language.DEFAULT();
153
		//taxonDescription.setId(index);
154
		
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
		
164
		String commonNameString = "Schönveilchen";
165
		CommonTaxonName commonName = CommonTaxonName.NewInstance(commonNameString, language);
166
		taxonDescription.addElement(commonName);
167
		
168
		return taxonDescription;
169
	}
170
	
171
	public static Classification getTestClassification(String name){
172
		return Classification.NewInstance(name);
173
	}
174
}
    (1-1/1)