1 package eu
.etaxonomy
.cdm
.datagenerator
;
3 import java
.util
.Random
;
5 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
6 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
7 import eu
.etaxonomy
.cdm
.model
.common
.LanguageString
;
8 import eu
.etaxonomy
.cdm
.model
.description
.CommonTaxonName
;
9 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
10 import eu
.etaxonomy
.cdm
.model
.description
.TextData
;
11 import eu
.etaxonomy
.cdm
.model
.name
.BotanicalName
;
12 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
13 import eu
.etaxonomy
.cdm
.model
.reference
.Book
;
14 import eu
.etaxonomy
.cdm
.model
.reference
.Database
;
15 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
16 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.SynonymRelationshipType
;
18 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
20 public class TaxonGenerator
{
21 private static String
[] genera
= {"Carex", "Abies", "Belladonna", "Dracula", "Maria", "Calendula", "Polygala", "Vincia"};
22 private static String
[] epitheta
= {"vulgaris", "magdalena", "officinalis", "alba", "negra", "communa", "alpina", "rotundifolia", "greutheriana", "helventica", "allemania", "franca"};
23 private static String
[] ranks
= {"subsp", "var", "f"};
25 private Random rnd
= new Random();
27 public static Taxon
getTestTaxon(){
28 Person deCandolle
= Person
.NewInstance();
29 deCandolle
.setTitleCache("DC.");
30 ReferenceBase sec
= Database
.NewInstance();
31 sec
.setTitleCache("Flora lunaea");
32 ReferenceBase citationRef
= Book
.NewInstance();
33 citationRef
.setTitleCache("Sp. lunarum");
35 //genus taxon with Name, combinationAuthor,
36 BotanicalName botName
= BotanicalName
.NewInstance(Rank
.GENUS());
37 botName
.setTitleCache("Hieracium L.");
38 botName
.setGenusOrUninomial("Hieracium");
39 botName
.setCombinationAuthorTeam(Person
.NewInstance());
40 botName
.getCombinationAuthorTeam().setNomenclaturalTitle("L.");
41 Taxon genusTaxon
= Taxon
.NewInstance(botName
, sec
);
43 //a name that is the basionym of genusTaxon's name
44 BotanicalName basionym
= BotanicalName
.NewInstance(Rank
.GENUS());
45 basionym
.setTitleCache("Hieracilla DC.");
46 basionym
.setGenusOrUninomial("Hieracilla");
47 basionym
.setCombinationAuthorTeam(deCandolle
);
48 botName
.addBasionym(basionym
, null, null,"216");
50 //species taxon that is the child of genus taxon
51 BotanicalName botSpecies
= BotanicalName
.NewInstance(Rank
.SPECIES());
52 botSpecies
.setTitleCache("Hieracium asturianum Pau");
53 botSpecies
.setGenusOrUninomial("Hieracium");
54 botSpecies
.setSpecificEpithet("asturianum");
55 botSpecies
.setCombinationAuthorTeam(Person
.NewInstance());
56 botSpecies
.getCombinationAuthorTeam().setNomenclaturalTitle("Pau");
57 Taxon childTaxon
= Taxon
.NewInstance(botSpecies
, sec
);
58 childTaxon
.setTaxonomicParent(genusTaxon
, citationRef
, "456");
60 //homotypic synonym of childTaxon1
61 BotanicalName botSpecies4
= BotanicalName
.NewInstance(Rank
.SPECIES());
62 botSpecies4
.setTitleCache("Hieracium gueri DC.");
63 botSpecies4
.setGenusOrUninomial("Hieracium");
64 botSpecies4
.setSpecificEpithet("gueri");
65 botSpecies4
.setCombinationAuthorTeam(deCandolle
);
66 Synonym homoSynonym
= Synonym
.NewInstance(botSpecies4
, sec
);
67 childTaxon
.addSynonym(homoSynonym
, SynonymRelationshipType
.HOMOTYPIC_SYNONYM_OF());
70 //2nd child species taxon that is the child of genus taxon
71 BotanicalName botSpecies2
= BotanicalName
.NewInstance(Rank
.SPECIES());
72 botSpecies2
.setTitleCache("Hieracium wolffii Zahn");
73 botSpecies2
.setGenusOrUninomial("Hieracium");
74 botSpecies2
.setSpecificEpithet("wolffii");
75 botSpecies2
.setCombinationAuthorTeam(Person
.NewInstance());
76 botSpecies2
.getCombinationAuthorTeam().setNomenclaturalTitle("Zahn");
77 Taxon childTaxon2
= Taxon
.NewInstance(botSpecies2
, sec
);
78 childTaxon2
.setTaxonomicParent(genusTaxon
, citationRef
, "499");
80 //heterotypic synonym of childTaxon2
81 BotanicalName botSpecies3
= BotanicalName
.NewInstance(Rank
.SPECIES());
82 botSpecies3
.setTitleCache("Hieracium lupium DC.");
83 botSpecies3
.setGenusOrUninomial("Hieracium");
84 botSpecies3
.setSpecificEpithet("lupium");
85 botSpecies3
.setCombinationAuthorTeam(deCandolle
);
86 Synonym heteroSynonym
= Synonym
.NewInstance(botSpecies3
, sec
);
87 childTaxon2
.addSynonym(heteroSynonym
, SynonymRelationshipType
.HETEROTYPIC_SYNONYM_OF());
89 //missaplied Name for childTaxon2
90 BotanicalName missName
= BotanicalName
.NewInstance(Rank
.SPECIES());
91 missName
.setTitleCache("Hieracium lupium DC.");
92 missName
.setGenusOrUninomial("Hieracium");
93 missName
.setSpecificEpithet("lupium");
94 missName
.setCombinationAuthorTeam(deCandolle
);
95 Taxon misappliedName
= Taxon
.NewInstance(missName
, sec
);
96 childTaxon2
.addMisappliedName(misappliedName
, citationRef
, "125");
98 genusTaxon
.addDescription(getTestDescription());
103 public static TaxonDescription
getTestDescription(){
104 TaxonDescription taxonDescription
= TaxonDescription
.NewInstance();
105 Language language
= Language
.DEFAULT();
108 TextData textData
= TextData
.NewInstance();
109 String descriptionText
= "this is a desciption for a taxon";
110 LanguageString languageString
= LanguageString
.NewInstance(descriptionText
, language
);
111 textData
.putText(languageString
);
112 taxonDescription
.addElement(textData
);
115 String commonNameString
= "Schönveilchen";
116 CommonTaxonName commonName
= CommonTaxonName
.NewInstance(commonNameString
, language
);
117 taxonDescription
.addElement(commonName
);
119 return taxonDescription
;