Project

General

Profile

Download (78.2 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 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
package eu.etaxonomy.cdm.io.berlinModel;
10

    
11
import java.sql.ResultSet;
12
import java.sql.SQLException;
13
import java.util.UUID;
14

    
15
import org.apache.logging.log4j.LogManager;
16
import org.apache.logging.log4j.Logger;
17

    
18
import eu.etaxonomy.cdm.common.ResultWrapper;
19
import eu.etaxonomy.cdm.model.common.Language;
20
import eu.etaxonomy.cdm.model.common.RelationshipBase;
21
import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
22
import eu.etaxonomy.cdm.model.description.Feature;
23
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
24
import eu.etaxonomy.cdm.model.name.HybridRelationshipType;
25
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
26
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
27
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
28
import eu.etaxonomy.cdm.model.name.Rank;
29
import eu.etaxonomy.cdm.model.name.RankClass;
30
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
31
import eu.etaxonomy.cdm.model.reference.Reference;
32
import eu.etaxonomy.cdm.model.reference.ReferenceType;
33
import eu.etaxonomy.cdm.model.taxon.Synonym;
34
import eu.etaxonomy.cdm.model.taxon.SynonymType;
35
import eu.etaxonomy.cdm.model.taxon.Taxon;
36
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
37
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
38
import eu.etaxonomy.cdm.model.term.OrderedTermVocabulary;
39
import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;
40

    
41
/**
42
 * @author a.mueller
43
 * @since 20.03.2008
44
 */
45
public class BerlinModelTransformer {
46

    
47
	private static final Logger logger = LogManager.getLogger();
48

    
49
	//source Refs
50
	public static final UUID uuidSourceRefEuroMed = UUID.fromString("0603a84a-f024-4454-ab92-9e2ac0139126");
51

    
52
	//named areas
53
	public static UUID euroMedUuid = UUID.fromString("111bdf38-7a32-440a-9808-8af1c9e54b51");
54

    
55
	public static UUID uuidEasternEuropeanRussia = UUID.fromString("3f013375-0e0a-40c3-8a14-84c0535fab40");
56
	public static UUID uuidSerbiaMontenegro = UUID.fromString("8926dbe6-863e-47a9-98a0-7dc9ed2c57f7");
57
	public static UUID uuidSerbia = UUID.fromString("4ffed197-3d7e-4cd9-8984-e64b8dee9512");
58
	public static UUID uuidLebanonSyria = UUID.fromString("0c45f250-99da-4b19-aa89-c3e56cfdf103");
59
	public static UUID uuidUssr = UUID.fromString("a512e00a-45f3-4be5-82fa-bba8d675696f");
60
	public static UUID uuidSicilyMalta = UUID.fromString("424d81ee-d272-4ae8-9600-0a334049cd72");
61

    
62
	public static UUID uuidDesertas = UUID.fromString("36f5e93e-34e8-45b5-a401-f0e0faad21cf");
63
	public static UUID uuidMadeira = UUID.fromString("086e27ee-78ff-4236-aca9-9850850cd355");
64
	public static UUID uuidPortoSanto = UUID.fromString("1f9ab6a0-a402-4dfe-8c5b-b1844eb4d8e5");
65
	//azores
66
	public static UUID uuidFlores = UUID.fromString("ef0067c2-8bbb-4e37-8462-97b03f51ba43");
67
	public static UUID uuidCorvo = UUID.fromString("b1e6117c-2be1-43a3-9233-227dd90bdee9");
68
	public static UUID uuidFaial = UUID.fromString("14f6dcdb-6524-4700-b80c-66424952ef2b");
69
	public static UUID uuidGraciosa = UUID.fromString("05f93a7b-d813-4833-864f-eedbba747133");
70
	public static UUID uuidSaoJorge = UUID.fromString("578e0ecd-b5e3-4c87-8ecc-0fc4c7e217d9");
71
	public static UUID uuidSaoMiguel = UUID.fromString("0e2f6ad8-7afb-4f01-b134-4f71991e877a");
72
	public static UUID uuidPico = UUID.fromString("98cc566f-4110-43d5-830f-68436a009f49");
73
	public static UUID uuidSantaMaria = UUID.fromString("bd5e5d4a-22b7-41aa-8e58-1d1d73a9954d");
74
	public static UUID uuidTerceira = UUID.fromString("6fc257c0-a131-41f0-b6c3-51ef9c4fa962");
75
	//Canyry islands
76
	public static UUID uuidGranCanaria = UUID.fromString("a0240c35-0e05-4157-8321-67ba8e31fdb9");
77
	public static UUID uuidFuerteventura = UUID.fromString("549ce2c1-6d49-4bf3-b75d-cf3f4b5a1398");
78
	public static UUID uuidGomera = UUID.fromString("895fab09-7478-4210-b42a-423d23c6f85e");
79
	public static UUID uuidHierro = UUID.fromString("d137b6a5-31bc-418c-9403-f042017dc04b");
80
	public static UUID uuidLanzaroteWithGraciosa = UUID.fromString("c9b08dc1-f301-4d9d-b447-b8744602c776");
81
	public static UUID uuidLaPalma = UUID.fromString("fdb3f2b2-f154-4f04-9f31-240a47a0e780");
82
	public static UUID uuidTenerife = UUID.fromString("73658c7e-a568-465e-bd84-4554fc93ca56");
83
	//Baleares
84
	public static UUID uuidIbizaWithFormentera = UUID.fromString("1cda2a33-3469-49d5-8e77-cb5451110519");
85
	public static UUID uuidMallorca = UUID.fromString("a10cba04-b4b5-4a4b-b69a-fcd4b3916fec");
86
	public static UUID uuidMenorca = UUID.fromString("9f6ede48-27f8-4270-bf4e-c97eaa86aab7");
87

    
88
	//russia
89
	public static UUID uuidRussiaNorthern = UUID.fromString("c23bc1c9-a775-4426-b883-07d4d7d47eed");
90
	public static UUID uuidRussiaBaltic = UUID.fromString("579dad44-9439-4b19-8716-ab90d8f27944");
91
	public static UUID uuidRussiaCentral = UUID.fromString("8bbc8c6a-2ef2-4024-ad51-66fe34c70092");
92
	public static UUID uuidRussiaSouthWest = UUID.fromString("daa5c207-5567-4690-8742-5e4d153b6a64");
93
	public static UUID uuidRussiaSouthEast = UUID.fromString("e8516598-b529-489e-9ee8-63bbbd295c1b");
94
	public static UUID uuidEastAegeanIslands = UUID.fromString("1c429593-c493-46e6-971a-0d70be690da8");
95
	public static UUID uuidTurkishEastAegeanIslands = UUID.fromString("ba35dba3-ac70-41ae-81c2-2070943f44f2");
96
	public static UUID uuidBalticStates = UUID.fromString("bf9d64f6-3183-4fa5-8e90-73090e7a2282");
97
	public static UUID uuidTurkey = UUID.fromString("d344ee2c-14c8-438d-b03d-11538edb1268");
98
	public static UUID uuidCaucasia = UUID.fromString("ebfd3fd1-3859-4e5e-95c7-f66010599d7e");
99

    
100
    //E+M common name areas
101
    public static UUID uuidVocEuroMedCommonNameAreas = UUID.fromString("aff33e27-41b0-40a3-a07e-c674213e971f");
102
    public static UUID uuidEMAreaCommonNameAlbania = UUID.fromString("0e79622b-07ad-44f0-b518-c799b113117f");
103
    public static UUID uuidEMAreaCommonNameAndorra = UUID.fromString("7a7b5692-e94a-4535-bb98-3177ce9c6c6f");
104
    public static UUID uuidEMAreaCommonNameArmenia = UUID.fromString("3d0fa3da-eafd-4a68-bdb7-2ca874436d00");
105
    public static UUID uuidEMAreaCommonNameAustria = UUID.fromString("675c0eb1-715d-42b2-98e3-4205b22893ef");
106
    public static UUID uuidEMAreaCommonNameAzerbaijan = UUID.fromString("48b9c57e-a089-4ca5-8171-6560f006c088");
107
    public static UUID uuidEMAreaCommonNameAzores = UUID.fromString("14eeaacf-aa01-4cf1-ae4d-6b9d0541bb51");
108
    public static UUID uuidEMAreaCommonNameBaleares = UUID.fromString("e772bae3-2950-45b3-866e-3f34a1baaf8d");
109
    public static UUID uuidEMAreaCommonNameBelarus = UUID.fromString("b751b9b2-d8b0-412f-b8b4-aa4c2b750563");
110
    public static UUID uuidEMAreaCommonNameBelgium = UUID.fromString("a0c709cf-9f0e-4cbc-b15e-37c0dad72e67");
111
    public static UUID uuidEMAreaCommonNameBulgaria = UUID.fromString("78a5d158-5770-47e4-b16f-ef171d75117a");
112
    public static UUID uuidEMAreaCommonNameCanaryIs = UUID.fromString("1263a706-b4dc-4c78-9799-265db9aef08c");
113
    public static UUID uuidEMAreaCommonNameCorse = UUID.fromString("b61abf50-6bc3-4a00-a14c-62dac001590d");
114
    public static UUID uuidEMAreaCommonNameCrete = UUID.fromString("fa7d968e-8924-4a9a-b875-73cba3ecb5db");
115
    public static UUID uuidEMAreaCommonNameCrimea = UUID.fromString("32480a59-2803-4444-83a3-1a505242ec69");
116
    public static UUID uuidEMAreaCommonNameCroatia = UUID.fromString("28cf3bce-c621-4624-ab31-0c344e347608");
117
    public static UUID uuidEMAreaCommonNameCzechRepublic = UUID.fromString("1630e820-82e8-4ea1-b233-733db0ecaa9f");
118
    public static UUID uuidEMAreaCommonNameDenmark = UUID.fromString("e7cea4f8-b59b-4716-b79a-5cc452ef6c72");
119
    public static UUID uuidEMAreaCommonNameEastAegeanIslands = UUID.fromString("4b4ecaad-8337-4db8-9955-a0757462db33");
120
    public static UUID uuidEMAreaCommonNameEstonia = UUID.fromString("37b8726e-8fd7-4bb7-b628-f6203b47a412");
121
    public static UUID uuidEMAreaCommonNameFaroer = UUID.fromString("acc4cffd-bc29-4f40-9dc5-8ba3339c26ed");
122
    public static UUID uuidEMAreaCommonNameFinland = UUID.fromString("31e10b9b-bdd8-486c-86e0-6768318540b4");
123
    public static UUID uuidEMAreaCommonNameFinlandWithAhvenanmaa = UUID.fromString("30ddc63b-45b1-4b58-b536-22e700e84dca");
124
    public static UUID uuidEMAreaCommonNameFrance = UUID.fromString("b63ca9b8-6840-4789-a300-825104d8dda6");
125
    public static UUID uuidEMAreaCommonNameGeorgia = UUID.fromString("97e1cdf6-7e6e-48de-915e-0f90421deb0d");
126
    public static UUID uuidEMAreaCommonNameGermany = UUID.fromString("49f6e579-885f-452a-a160-dfa0a123bd0d");
127
    public static UUID uuidEMAreaCommonNameGreatBritain = UUID.fromString("679a5679-381e-417b-a7e6-20af3345aa46");
128
    public static UUID uuidEMAreaCommonNameGreece = UUID.fromString("f1c4c5c2-da4a-4cd7-9b1f-e4cb72a82ce4");
129
    public static UUID uuidEMAreaCommonNameHungary = UUID.fromString("848c2b14-8b4d-483c-9d35-600fc19065e8");
130
    public static UUID uuidEMAreaCommonNameIbizaWithFormentera = UUID.fromString("a3dadbc6-11b3-4df2-9794-f92fbc458fd0");
131
    public static UUID uuidEMAreaCommonNameIceland = UUID.fromString("95863923-79cc-4bb6-a475-69b99978599a");
132
    public static UUID uuidEMAreaCommonNameIreland = UUID.fromString("2890c6cb-838f-4e7a-8823-4267dea4a4a1");
133
    public static UUID uuidEMAreaCommonNameIsrael = UUID.fromString("9cfb7aed-a00d-44e2-b052-92b9f61c061e");
134
    public static UUID uuidEMAreaCommonNameItaly = UUID.fromString("ca77b4d1-057c-4254-bf79-11cfbc220e09");
135
    public static UUID uuidEMAreaCommonNameLaPalma = UUID.fromString("8e6a84ca-2b77-43e8-ad5d-0790902e0a6c");
136
    public static UUID uuidEMAreaCommonNameLativa = UUID.fromString("9b55b5af-3530-4937-a4af-4faa40fe168f");
137
    public static UUID uuidEMAreaCommonNameLebanon = UUID.fromString("b8f021e6-9b46-4637-9aee-4b3e1489813a");
138
    public static UUID uuidEMAreaCommonNameLibya = UUID.fromString("0dc1a7a7-324e-48ed-a317-ffcb816749cc");
139
    public static UUID uuidEMAreaCommonNameLithuania = UUID.fromString("a110eab7-c0e8-4f6c-8e53-4c616e896dfe");
140
    public static UUID uuidEMAreaCommonNameMadeira = UUID.fromString("ecefeda2-7d8c-4921-9610-5a23aa3b291d");
141
    public static UUID uuidEMAreaCommonNameMallorca = UUID.fromString("b55a484b-faaf-4077-a76d-e24ec3841e70");
142
    public static UUID uuidEMAreaCommonNameMalta = UUID.fromString("6d3e211a-f8be-4e2a-9933-5f50bea7e4a6");
143
    public static UUID uuidEMAreaCommonNameMenorca = UUID.fromString("bb57089f-3d95-4c74-98ec-54508b8c8f3c");
144
    public static UUID uuidEMAreaCommonNameMoldova = UUID.fromString("51d8c588-a0aa-4586-9e89-3db43c6f857b");
145
    public static UUID uuidEMAreaCommonNameMorocco = UUID.fromString("0ce657e5-a7d8-4bfb-a099-5e459eb42520");
146
    public static UUID uuidEMAreaCommonNameNetherlands = UUID.fromString("5d6c22cd-a2e5-401b-97b0-41f06febe6d1");
147
    public static UUID uuidEMAreaCommonNameNorway = UUID.fromString("fea24b9c-20d6-4d45-9459-273d13063f4b");
148
    public static UUID uuidEMAreaCommonNamePoland = UUID.fromString("27f8e6f0-7547-4923-818d-a33943f9f94d");
149
    public static UUID uuidEMAreaCommonNamePortugal = UUID.fromString("7374ded9-9159-4862-bb1b-e88b270f3a8b");
150
    public static UUID uuidEMAreaCommonNameRomania = UUID.fromString("3162d5ee-9fc2-4215-acc9-9e22a5a76b40");
151
    public static UUID uuidEMAreaCommonNameRussiaCentral = UUID.fromString("12e08af4-7c33-49d8-a36f-8992480870b1");
152
    public static UUID uuidEMAreaCommonNameRussianFederation = UUID.fromString("21796f6f-cbbf-4b5c-90e4-93c790cd9a68");
153
    public static UUID uuidEMAreaCommonNameSardegna = UUID.fromString("d9f5934e-357b-477d-b8d5-1d719a2a8146");
154
    public static UUID uuidEMAreaCommonNameSerbiaMontenegro = UUID.fromString("c71b5bff-93b1-40d3-a4c9-e7fb9b5d7778");
155
    public static UUID uuidEMAreaCommonNameSlovakia = UUID.fromString("e9948c7c-1a2b-48a2-9744-c4609f8ba829");
156
    public static UUID uuidEMAreaCommonNameSlovenia = UUID.fromString("960d01d2-e3ae-4931-b738-6835420f25aa");
157
    public static UUID uuidEMAreaCommonNameSouthEuropeanRussia = UUID.fromString("0aedc386-db44-4b2d-9897-1694b0344035");
158
    public static UUID uuidEMAreaCommonNameSpain = UUID.fromString("e512a268-02a7-4c65-a431-264c7349fd39");
159
    public static UUID uuidEMAreaCommonNameSweden = UUID.fromString("8cb32914-6c23-4f6a-a26f-47cc9da0a65a");
160
    public static UUID uuidEMAreaCommonNameSwitzerland = UUID.fromString("20cebdad-5ac2-47fb-94d3-6eaac7242001");
161
    public static UUID uuidEMAreaCommonNameSyria = UUID.fromString("a09866fc-07d0-49c7-b7ca-70c03e6126c8");
162
    public static UUID uuidEMAreaCommonNameTenerife = UUID.fromString("18569798-b177-4210-8bcc-3c762d82ed3d");
163
    public static UUID uuidEMAreaCommonNameTurkey = UUID.fromString("7259bdc6-f07f-4501-afe3-3e863bc14188");
164
    public static UUID uuidEMAreaCommonNameUkraine = UUID.fromString("8d1622b9-02e5-4001-b8da-8ad9e6d2d0b6");
165
    public static UUID uuidEMAreaCommonNameWales = UUID.fromString("f66ce4c2-2a1a-43cb-aff7-1776768f725f");
166

    
167
    //E+M areas
168
	public static UUID uuidVocEuroMedAreas = UUID.fromString("625a4962-c211-4597-816e-5804083efe26");
169
	public static UUID uuidEM = UUID.fromString("111BDF38-7A32-440A-9808-8AF1C9E54B51");
170
	public static UUID uuidEUR = UUID.fromString("80B3CEEE-2F78-45CE-B4F4-E473F5ED8343");
171
	public static UUID uuid14 = UUID.fromString("4FF83A35-97DE-4C39-BEDE-27EE9ECEFB45");
172
	public static UUID uuid20 = UUID.fromString("19D93AD1-59E7-49ED-B513-D7D493EDC4DE");
173
	public static UUID uuid21 = UUID.fromString("1B98DAF0-A709-4871-9A8B-CFDD09F41763");
174
	public static UUID uuid33 = UUID.fromString("6B719260-1E48-4D85-8BC3-320852E1B331");
175
	public static UUID uuidDa = UUID.fromString("867871C9-9931-47D0-AEF7-468B9519EBB2");
176
	public static UUID uuidFe = UUID.fromString("C4EF26AF-11E0-4888-9FC3-5E56F4422BB4");
177
	public static UUID uuidFa = UUID.fromString("70426E7E-2EAA-4987-95FB-5CB6E56980F3");
178
	public static UUID uuidBr = UUID.fromString("A22329C4-0B81-4E00-BCC3-2F44A6CA56D0");
179
	public static UUID uuidIs = UUID.fromString("3D2950E9-C2FD-462E-9697-DCB7241D514E");
180
	public static UUID uuidHb = UUID.fromString("65E405E7-B3D4-44B6-BE67-4881582EA274");
181
	public static UUID uuidNo = UUID.fromString("2D3F1181-6838-4034-96CB-F254A558572A");
182
	public static UUID uuidSb = UUID.fromString("BC847AF8-30C3-48B2-A881-2B2DEAC0A137");
183
	public static UUID uuidSu = UUID.fromString("F064AB9F-EDDB-47D8-8E54-B9E8AD19111D");
184
	public static UUID uuidAu = UUID.fromString("37C77C23-9673-4ABC-87C2-B29E9FA87FA8");
185
	public static UUID uuidBe = UUID.fromString("4840373B-F949-4630-B655-9B37F845CFDA");
186
	public static UUID uuidCz = UUID.fromString("02E67A70-C192-4A01-A311-99F8C42F9D51");
187
	public static UUID uuidGe = UUID.fromString("F617DDEA-51C9-4EF1-B7F4-ED22F871631D");
188
	public static UUID uuidHu = UUID.fromString("AD7EDDB1-C089-436F-88BA-BC9115BBD6E0");
189
	public static UUID uuidHo = UUID.fromString("00B8FE6D-D04B-4CAC-ADCE-32B44ABB385A");
190
	public static UUID uuidPo = UUID.fromString("F23864DF-DFD6-4ABC-B7D0-FD97408AE0A9");
191
	public static UUID uuidHe = UUID.fromString("7C28D878-F16D-4043-A94E-750BEF910064");
192
	public static UUID uuidBl = UUID.fromString("A4326211-3219-4655-83AD-599D635DB638");
193
	public static UUID uuidCo = UUID.fromString("3EE3CB3E-23DE-491F-94DF-35DB7A1D3AC0");
194
	public static UUID uuidGa = UUID.fromString("28591C04-60E3-432A-9D05-CBC945462D2E");
195
	public static UUID uuidLu = UUID.fromString("205512B0-AA22-4041-B92B-336FEB79FA4F");
196
	public static UUID uuidSa = UUID.fromString("11368A92-2362-4029-A26A-E35CEC0798C1");
197
	public static UUID uuidHs = UUID.fromString("6AD92C01-1442-4F2F-BD58-F73075B26C27");
198
	public static UUID uuidAl = UUID.fromString("635B63DA-0AAF-446C-843E-BEB52E2A1B90");
199
	public static UUID uuidBu = UUID.fromString("75F3CF66-B272-464E-9B1E-35B8E511936D");
200
	public static UUID uuidGr = UUID.fromString("34DF8B89-7DFA-4265-9A3E-D540DB72AA77");
201
	public static UUID uuidIt = UUID.fromString("06B8F41D-B9A8-4B55-8AAB-DE90EB3D0A9C");
202
	public static UUID uuidCr = UUID.fromString("20A8A822-1C87-43F0-A5EF-2AF1CC5DC0FC");
203
	public static UUID uuidRm = UUID.fromString("EAB29D40-E3B2-4920-BB1F-8757DFBC9E86");
204
	public static UUID uuidSi_S = UUID.fromString("DD861671-930F-4C9E-92D8-EADDC28EB6B7");
205
	public static UUID uuidTu_E = UUID.fromString("2B732609-55DB-4F25-BC73-618FFF515ADC");
206
	public static UUID uuidJu = UUID.fromString("BD5E6833-7E0E-41A8-83D6-149A31F2CE05");
207
	public static UUID uuidUk_K = UUID.fromString("40B7219D-E38C-44EB-9877-E311A2734022");
208
	public static UUID uuidUk = UUID.fromString("7A8DF5D0-3D18-4386-891E-96E11BDB6FEB");
209
	public static UUID uuidAg = UUID.fromString("548E583C-DBE7-463F-A01B-2A966F2B32D2");
210
	public static UUID uuidEg = UUID.fromString("9EDDDE2E-95B7-4443-89A8-C30D031E16A5");
211
	public static UUID uuidLi = UUID.fromString("2F506902-2A56-40C8-84CB-B436C84ED258");
212
	public static UUID uuidMa = UUID.fromString("D639A7AC-F873-414E-8869-73D10B9CF842");
213
	public static UUID uuidTn = UUID.fromString("AF4D86D4-2CA0-48A2-BA15-0D74454D1EAD");
214
	public static UUID uuidAz = UUID.fromString("CEC2EBD3-DFD0-4CE6-827F-BFF8FBAF5283");
215
	public static UUID uuidSg = UUID.fromString("BC4A0307-B81A-4233-B8BD-EFB9CEDFD530");
216
	public static UUID uuidAb = UUID.fromString("D3744C2D-2777-4E85-98BF-04D2FD589EBF");
217
	public static UUID uuidAr = UUID.fromString("535FED1E-3EC9-4563-AF55-E753AEFCFBFE");
218
	public static UUID uuidAb_A = UUID.fromString("0F4C98BF-AF7B-4CDA-B62C-AD6A1909BFA0");
219
	public static UUID uuidGg = UUID.fromString("DA1CCDA8-5867-4098-A709-100A66E2150A");
220
	public static UUID uuidAb_N = UUID.fromString("AA75B0CA-49C9-4F8E-8CC2-2A343EB2FFF4");
221
	public static UUID uuidCy = UUID.fromString("36EFDF69-09C0-4160-A502-9EEFBC22A984");
222
	public static UUID uuidAE_G = UUID.fromString("76F5F3F6-9C3E-47F5-8E85-55360C50273C");
223
	public static UUID uuidLe = UUID.fromString("639F5D97-EC9E-4EE2-ADFC-DFF73F7CC970");
224
	public static UUID uuidSn = UUID.fromString("5D8E0B00-96CE-4ACC-AF02-62A1B9866144");
225
	public static UUID uuidTu_A = UUID.fromString("F7B59D79-15C2-47C9-91B0-DEC1F388CB62");
226
	public static UUID uuidTu = UUID.fromString("DB98809B-EF22-413B-B1EA-A79C4E1C4903");
227
	public static UUID uuidAu_A = UUID.fromString("AE65867C-00F6-406C-A315-B3E4CC9A93D2");
228
	public static UUID uuidAu_L = UUID.fromString("78146B6E-E71A-46DA-8DBC-244CC648BBE7");
229
	public static UUID uuidAz_C = UUID.fromString("D35B8259-CC76-4FB0-AFC0-6A23D657EE3E");
230
	public static UUID uuidAz_F = UUID.fromString("0F8F470D-CA2A-4130-842A-0A0C6912A123");
231
	public static UUID uuidAz_G = UUID.fromString("CFF9FC6D-E3B2-45B1-87A9-6FEFB029A12F");
232
	public static UUID uuidAz_P = UUID.fromString("C8000982-19E8-492E-912D-59EB370E52C0");
233
	public static UUID uuidAz_S = UUID.fromString("BD852931-47B3-466C-A422-4F312B913CA2");
234
	public static UUID uuidAz_J = UUID.fromString("4A5CED9F-F078-44B3-94BF-F3EE79315236");
235
	public static UUID uuidAz_M = UUID.fromString("B8C76F37-6483-474F-85AB-96399219DE57");
236
	public static UUID uuidAz_T = UUID.fromString("7A52595F-DA5E-440A-B2BD-F63999CE979E");
237
	public static UUID uuidBe_B = UUID.fromString("9E263401-ACEC-4E2E-AA89-4AAF56AE7180");
238
	public static UUID uuidBe_L = UUID.fromString("AF71559C-7765-493C-8C9A-1248DFF28789");
239
	public static UUID uuidBl_I = UUID.fromString("121B07A0-8031-4F22-B9B7-C334FC3204CE");
240
	public static UUID uuidBl_M = UUID.fromString("E8E8EFDC-E9EB-4B26-9711-F986265AD114");
241
	public static UUID uuidBl_N = UUID.fromString("D96DD8A7-4BD8-4ADF-8CDB-05873686DB1A");
242
	public static UUID uuidBH = UUID.fromString("6A109EF5-3AC1-4C59-8599-08F944ABA499");
243
	public static UUID uuidBy = UUID.fromString("5D972AF7-6AE2-44D1-840B-EDB1DBE8B7AC");
244
	public static UUID uuidCa = UUID.fromString("CFA26682-B0AB-4FEB-9191-6AA098638382");
245
	public static UUID uuidCa_F = UUID.fromString("0D8ED2C4-0313-464C-A5B4-EC0A52E45ADF");
246
	public static UUID uuidCa_G = UUID.fromString("865D1319-B157-4D1A-BBF0-F56B7EB2ED96");
247
	public static UUID uuidCa_C = UUID.fromString("486FCBED-84C4-4673-8724-9A8A4A6613AD");
248
	public static UUID uuidCa_H = UUID.fromString("0B57C693-DB09-4D7F-9FA9-0DBBEFF3B3B6");
249
	public static UUID uuidCa_L = UUID.fromString("A88D6DF4-7924-4BEC-BFA6-071BDA82A4B3");
250
	public static UUID uuidCa_P = UUID.fromString("BBF04D1A-1FC0-4A7B-BF0B-7D7BF69D8392");
251
	public static UUID uuidCa_T = UUID.fromString("BBAD170B-285D-4BEA-8C3F-C43894FB75FF");
252
	public static UUID uuidCs = UUID.fromString("2ADA45F0-C7CC-4026-A8B1-B816971F0753");
253
	public static UUID uuidCt = UUID.fromString("09B5728A-4775-4530-B362-9B1EF4A9E8C3");
254
	public static UUID uuidEs = UUID.fromString("1011D427-401B-47EE-A42C-4C1698957D55");
255
	public static UUID uuidGa_C = UUID.fromString("3653A4DC-1ADE-4237-A62C-4F0AC11E576F");
256
	public static UUID uuidGa_F = UUID.fromString("860F92B6-5CDA-456B-964C-6162D1D08161");
257
	public static UUID uuidGg_A = UUID.fromString("5FAD859B-7929-4D5F-B92C-95E3E0469BB2");
258
	public static UUID uuidGg_D = UUID.fromString("6091C975-B946-4EF3-A18F-2E148EAE6A06");
259
	public static UUID uuidGg_G = UUID.fromString("048799B0-D7B9-44C6-B2D1-5CA2A49FA175");
260
	public static UUID uuidHs_A = UUID.fromString("EAED6C21-42E5-496D-B43E-C121F96FA672");
261
	public static UUID uuidHs_G = UUID.fromString("35350D75-6952-48BD-B265-C005BC1B2909");
262
	public static UUID uuidHs_S = UUID.fromString("264649F7-192D-4AE5-9840-81FC782F59F0");
263
	public static UUID uuidIr = UUID.fromString("A3B35528-5FFD-43B1-B605-711807C1EC9F");
264
	public static UUID uuidIt_I = UUID.fromString("E3BC327E-0B42-4439-811B-595BC55A8FF8");
265
	public static UUID uuidIt_S = UUID.fromString("57F35807-8CFA-4698-BB04-AAD3549C12EB");
266
	public static UUID uuidJo = UUID.fromString("567A537D-F2FA-43EF-A20A-AEC76723E269");
267
	public static UUID uuidKz = UUID.fromString("F8ABE715-D859-4B6F-B8F1-DB1A847DEAC4");
268
	public static UUID uuidLa = UUID.fromString("8E338882-2631-4AD6-BC53-799C698C807D");
269
	public static UUID uuidLt = UUID.fromString("ECF200B6-B1DF-414F-B215-EDAC503B1A65");
270
	public static UUID uuidMa_E = UUID.fromString("80980607-FBD8-46E3-BE56-05D997F2D331");
271
	public static UUID uuidMa_S = UUID.fromString("B743AE57-DC0B-4CCC-B4D9-7BF51E579E8E");
272
	public static UUID uuidMk = UUID.fromString("0CE83170-2FA7-4C72-81F7-7FFF17343E48");
273
	public static UUID uuidMd = UUID.fromString("2CFB90B1-0BA0-4578-AD11-AAD5AAB62899");
274
	public static UUID uuidMd_D = UUID.fromString("DBE1F3CA-4C7C-4062-AC1E-ADE0C17DCA52");
275
	public static UUID uuidMd_M = UUID.fromString("4658DADD-60FE-46D8-94E3-C6A6C4646105");
276
	public static UUID uuidMd_P = UUID.fromString("2C41EB67-A330-4214-B452-6E6741262CE5");
277
	public static UUID uuidSi_M = UUID.fromString("2920D738-54A1-49CE-AF3A-9CB742064587");
278
	public static UUID uuidMo = UUID.fromString("64F98B98-1050-42C6-B2C7-F72DA642E4D5");
279
	public static UUID uuidRf = UUID.fromString("4B6BDFEE-2BCB-4638-99CF-0F9612FA4787");
280
	public static UUID uuidRf_C = UUID.fromString("1FFAF0B5-6311-4BF6-977F-8940622C4986");
281
	public static UUID uuidRf_E = UUID.fromString("4280A0F6-298E-4B3C-8CE8-56A1208183F7");
282
	public static UUID uuidRf_K = UUID.fromString("D9559D9A-1798-4496-8671-DE667CC30EC0");
283
	public static UUID uuidRf_CS = UUID.fromString("6E886ACC-22C9-4C63-BEA5-A51AD84AF3D1");
284
	public static UUID uuidRf_N = UUID.fromString("B0D8F65E-B5A4-4C0B-A5EF-54CC9F378CC6");
285
	public static UUID uuidRf_NW = UUID.fromString("06CC9983-B444-4322-A03E-9A7A2AF1D4AD");
286
	public static UUID uuidRf_A = UUID.fromString("1786C13D-D26D-49E3-BA60-E3F3E7852713");
287
	public static UUID uuidRf_S = UUID.fromString("6AAB10D5-05E9-470A-8AF5-B6F8D48A71EC");
288
	public static UUID uuidSk = UUID.fromString("09267309-E771-4BD7-A67F-B6B4321546E0");
289
	public static UUID uuidSl = UUID.fromString("BC242D21-98CA-402C-BDB7-3ED347C7BDFD");
290
	public static UUID uuidSy = UUID.fromString("A5974D4B-F878-422C-A7A8-A1D8268109EF");
291
	public static UUID uuidUk_U = UUID.fromString("4A6C5155-154E-4B0D-AC73-550B51CCE374");
292
	public static UUID uuidSM = UUID.fromString("AC360FC1-30F4-444A-92EB-B55BF98B8E97");
293
	public static UUID uuidYu_K = UUID.fromString("F3F05E88-99AF-48FA-92EF-1A169BCC7ACF");
294
	public static UUID uuidCg = UUID.fromString("38A4FD15-40D6-43F4-9685-F87465FDBD3F");
295
	public static UUID uuidSr = UUID.fromString("468CFEA2-008F-40CF-B2C8-ADF5C09C0FA4");
296
	public static UUID uuidIJ = UUID.fromString("9351B972-0C0B-4A97-87B1-4CC11E67D21E");
297
	public static UUID uuidLS = UUID.fromString("F7BFDAE0-3DD9-4FC4-9B0B-0BF203B94031");
298
	public static UUID uuidRs = UUID.fromString("C4A898CE-0F32-44FE-A8A3-278E11A4BA53");
299
	public static UUID uuidSi = UUID.fromString("DB1FACF2-58A5-483E-9B2A-EB4290CA1B71");
300
	public static UUID uuidAz_L = UUID.fromString("F5AEF252-C4F8-4ECC-9B6E-4821DB7ADECF");
301
	public static UUID uuidHb_E = UUID.fromString("1D400E37-F39A-4CAE-8885-CF485B900CC5");
302
	public static UUID uuidHb_N = UUID.fromString("B1D514DA-B9E6-4F0E-ACE4-18FB061FC132");
303
	public static UUID uuidGa_M = UUID.fromString("E73942F0-292A-4F6A-8B2F-15AFE8634319");
304
	public static UUID uuidMa_M = UUID.fromString("D9F7DFFC-0E76-4790-9AAE-B7AEB5AD76ED");
305
	public static UUID uuidRs_N = UUID.fromString("44F262E3-5091-4D28-8081-440D3978FB0B");
306
	public static UUID uuidRs_B = UUID.fromString("A575D608-DD53-4C01-B2AF-5067D0711F64");
307
	public static UUID uuidRs_C = UUID.fromString("DA4E9CC3-B1CC-403A-81FF-BCC5D9FADBD1");
308
	public static UUID uuidRs_W = UUID.fromString("EFABC8FD-0B3C-475B-B532-E1CA0BA0BDBB");
309
	public static UUID uuidRs_E = UUID.fromString("7E0F8FA3-5DB9-48F0-9FA8-87FCAB3EAA53");
310
	public static UUID uuidAE = UUID.fromString("C8FCD4E0-E1A2-4A7D-8EE2-6F397F5C546C");
311
	public static UUID uuidAE_T = UUID.fromString("AF83B475-BB35-4594-8380-EA64B4313091");
312
	public static UUID uuidRs_K = UUID.fromString("2188E3A5-0446-47C8-B11B-B4B2B9A71C75");
313
	public static UUID uuidCc = UUID.fromString("05B0DD06-30F8-477D-BF4C-30D9DEF56320");
314
	public static UUID uuidBt = UUID.fromString("EE13FB74-F3AC-46B1-9F23-6A25AC504446");
315
	public static UUID uuidTcs = UUID.fromString("904C3980-B98D-422E-A195-95F4F41FC734");
316
	public static UUID uuidKo = UUID.fromString("f3f05e88-99af-48fa-92ef-1a169bcc7acf");
317
	public static UUID uuidSe = UUID.fromString("75facd9a-125d-41b5-8f90-776234e782e9");
318

    
319
	//Caucasus area
320
	public static UUID uuidVocCaucasusAreas = UUID.fromString("3ef82b77-23cb-4b60-a4b3-edc7e4775ddb");
321
	public static UUID uuidCauc1 = UUID.fromString("4fa53820-a416-4bcb-b816-3b0867a6dfec");
322
	public static UUID uuidCauc1a = UUID.fromString("092c2165-a203-4bce-bfe6-efd78b2fabf5");
323
	public static UUID uuidCauc1b = UUID.fromString("b42f7566-6886-411d-acc6-056eb6845e14");
324
	public static UUID uuidCauc2 = UUID.fromString("0b05c6ee-d130-4b12-b1b0-1b6986a3badf");
325
	public static UUID uuidCauc2a = UUID.fromString("75f5604b-c985-482e-aefd-5abe46478b55");
326
	public static UUID uuidCauc2b = UUID.fromString("b1f46148-1fe0-41f7-b276-a2b3020c513e");
327
	public static UUID uuidCauc2c = UUID.fromString("3017b469-42d2-4e7e-8551-e2ee3a1cf403");
328
	public static UUID uuidCauc3 = UUID.fromString("0a295a9f-443b-490f-8960-6db9e09bbc6e");
329
	public static UUID uuidCauc3a = UUID.fromString("033695d9-4c95-4178-aa0e-45a7bae5a667");
330
	public static UUID uuidCauc3b = UUID.fromString("fa289ce5-bf06-4629-8fb6-f2cbdc88ab46");
331
	public static UUID uuidCauc3c = UUID.fromString("a6ce69d0-bd0a-4a45-889d-50dfd6c460ea");
332
	public static UUID uuidCauc3d = UUID.fromString("c19ad80b-b9c0-487e-8087-89f7ba8871e1");
333
	public static UUID uuidCauc4 = UUID.fromString("2633f644-1a50-4770-bd23-e746cd25a261");
334
	public static UUID uuidCauc4a = UUID.fromString("b3c8cdfb-4b7a-4936-8b20-72d287621e8d");
335
	public static UUID uuidCauc4b = UUID.fromString("a416e238-8893-4ae1-80dd-3a11d8be7bea");
336
	public static UUID uuidCauc4c = UUID.fromString("eaf20fcc-a532-4d02-8db7-99e73504a9d8");
337
	public static UUID uuidCauc5 = UUID.fromString("92f4fbd6-3eb9-42df-9e03-21aa0e15bf6d");
338
	public static UUID uuidCauc5a = UUID.fromString("262fcc45-434d-40f7-8317-f9ad46229cdd");
339
	public static UUID uuidCauc5b = UUID.fromString("15add738-963e-4b2c-bf31-aa43a48139c1");
340
	public static UUID uuidCauc5c = UUID.fromString("5441359c-acb8-45ea-85a2-bd509b5fb677");
341
	public static UUID uuidCauc5d = UUID.fromString("3fc5c58f-43aa-461d-aeaf-b8be2beb4d45");
342
	public static UUID uuidCauc6 = UUID.fromString("ef33a819-e022-44f9-8001-53383528c245");
343
	public static UUID uuidCauc6a = UUID.fromString("6b4785c5-34d2-400f-9b3d-5f38b01766d1");
344
	public static UUID uuidCauc6b = UUID.fromString("eaa10e80-6bdc-404a-9d9e-e653745d2f9f");
345
	public static UUID uuidCauc7 = UUID.fromString("c1cf286d-681f-49c9-8066-70473640eeb1");
346
	public static UUID uuidCauc7a = UUID.fromString("ff378de7-e367-4611-a4e6-52f8e6883711");
347
	public static UUID uuidCauc7b = UUID.fromString("78c86e36-abce-4dfb-b445-8c85f820d199");
348
	public static UUID uuidCauc7c = UUID.fromString("4bee620f-fe54-40c1-a161-baf54c89dbb4");
349
	public static UUID uuidCauc7d = UUID.fromString("00f89bb2-eefa-4d20-9ca2-27d859423488");
350
	public static UUID uuidCauc7e = UUID.fromString("7f303133-3dd1-4dcd-9592-f30e8f3d201b");
351
	public static UUID uuidCauc8 = UUID.fromString("07e91d7a-daa3-4096-ae14-eac737821dc7");
352
	public static UUID uuidCauc8a = UUID.fromString("d0ed61d1-ae46-42dc-92bf-f72c5e30ecd3");
353
	public static UUID uuidCauc8b = UUID.fromString("98158bf1-f58b-4782-948b-e047b8e7c10a");
354
	public static UUID uuidCauc8c = UUID.fromString("2d966527-298a-45ed-96da-0dc74eaec23a");
355
	public static UUID uuidCauc9 = UUID.fromString("eacd9881-38f4-4323-8b5d-7a80299a2821");
356
	public static UUID uuidCauc9a = UUID.fromString("05c357cc-74a7-403c-be4a-667217555e12");
357
	public static UUID uuidCauc9b = UUID.fromString("39224e9e-0e92-43df-9554-e7de7311f0a9");
358
	public static UUID uuidCauc9c = UUID.fromString("3b6a0540-5a75-41a5-bcdb-6d54042bc864");
359
	public static UUID uuidCauc9d = UUID.fromString("6e2d2a39-debe-4f9a-b47d-0d69c0b2624c");
360
	public static UUID uuidCauc9e = UUID.fromString("cf648e63-1794-4ec5-9872-f43ab42ac303");
361
	public static UUID uuidCauc9f = UUID.fromString("547ace9d-8f69-471f-8bf3-cd547c7682a1");
362
	public static UUID uuidCauc10 = UUID.fromString("e92833d5-8573-4c10-97b0-fef972c33c97");
363
	public static UUID uuidCauc10a = UUID.fromString("6b6e7e7b-a398-4a9a-81b1-70c4c9f36e9d");
364
	public static UUID uuidCauc10b = UUID.fromString("8ca869d0-8fff-4217-8357-f4866af5fa38");
365
	public static UUID uuidCauc10c = UUID.fromString("37f06734-45c5-4339-88c7-750a7f912703");
366
	public static UUID uuidCauc11 = UUID.fromString("cecc54bc-1f56-416a-bff5-e84de0a58c96");
367
	public static UUID uuidCauc11a = UUID.fromString("c949f59c-cf7a-4117-88fa-7b0f8690c110");
368
	public static UUID uuidCauc11b = UUID.fromString("0aa6c4fd-fbe5-4eb4-8f01-cb5f186ff4a6");
369
	public static UUID uuidCauc11c = UUID.fromString("2922d3ce-2b02-4739-b986-2b7f2944f384");
370
	public static UUID uuidCauc11d = UUID.fromString("99d574d8-1c15-4f5f-a530-0a6bdcc9634f");
371
	public static UUID uuidCauc11e = UUID.fromString("b995f2c2-05c4-4cca-adee-fd300d887929");
372
	public static UUID uuidCauc11f = UUID.fromString("2aaa9b08-be28-41a8-8985-9d06ca9789e0");
373
	public static UUID uuidCauc11g = UUID.fromString("72f3fd82-0e4c-4037-a4c9-5ff7fafe27af");
374
	public static UUID uuidCauc12 = UUID.fromString("f352e4f0-d2e4-4a0d-a457-539840dfb9b3");
375

    
376

    
377

    
378
	//Salvador
379
	public static UUID uuidSalvadorAreas = UUID.fromString("8ef90ca3-77d7-4adc-8bbc-1eb354e61b65");
380

    
381
	//E+M PresenceAbsenceStatus
382
	public static UUID uuidStatusUndefined = PresenceAbsenceTerm.uuidUndefined;
383

    
384
	//Annotation Type
385
	public static final UUID uuidAnnoTypeDistributionStatus = UUID.fromString("b7c4db51-7089-440b-92e2-4006611238f0");
386

    
387
	//Marker Types
388
	public static final UUID uuidVocEMMarkerType = UUID.fromString("7c3d5674-87bf-462a-9cd9-d4a51d2f2a77");
389
	public static final UUID uuidMisappliedCommonName = UUID.fromString("25f5cfc3-16ab-4aba-a008-0db0f2cf7f9d");
390
	public static final UUID uuidEurArea = UUID.fromString("71dd0368-835c-4b53-889a-2bf316e10297");
391
	public static final UUID uuidEurMedArea = UUID.fromString("aa6a5b25-3ee3-4771-b4d1-b91918f23fa5");
392
	public static final UUID uuidHiddenArea = UUID.fromString("0318c67d-e323-4e9c-bffb-bc0c7f8f9f40");
393
	public static final UUID uuidTaxonomicallyValueless = UUID.fromString("e07060cc-5a51-471f-863b-01011e3142fb");
394
	public static final UUID uuidProbablyTaxonomicallyValueless = UUID.fromString("3b8b620e-986d-4a87-8070-1884a51c6bad");
395

    
396
	//Extension Types
397
	public static final UUID uuidSpeciesExpertName = UUID.fromString("2e8153d2-7412-49e4-87e1-5c38f4c5153a");
398
	public static final UUID uuidExpertName = UUID.fromString("24becb79-a90c-47d3-be35-efc87bb48fd3");
399

    
400
	public static final UUID DETAIL_EXT_UUID = UUID.fromString("c3959b4f-d876-4b7a-a739-9260f4cafd1c");
401
	public static final UUID SOURCE_ACC_UUID = UUID.fromString("f75ea789-581e-4170-b3f6-2cedfab7fcef");
402
	public static final UUID ID_IN_SOURCE_EXT_UUID = UUID.fromString("23dac094-e793-40a4-bad9-649fc4fcfd44");
403
	public static final UUID uuidIsoCode = UUID.fromString("048b8153-e3ee-451c-a72c-f1c8bc291c3e");
404
	public static final UUID uuidTdwgAreaCode = UUID.fromString("73ad0288-b71b-4a14-9c2e-7f81f1e64a36");
405
	public static final UUID uuidMclCode = UUID.fromString("aa27083a-6a96-42aa-a2f8-5541cf057067");
406
	public static final UUID PARENTAL_SPECIES_EXT_UUID = UUID.fromString("fee3138a-0084-4571-8e32-56bd14a4b0a8");
407

    
408
	//Identifier Type
409
	public static final UUID uuidEMReferenceSourceNumber = UUID.fromString("06b02bbd-bf22-485c-9fd1-fad9175f0d53");
410
	public static final UUID uuidEM_MCLIdentifierType = UUID.fromString("c6873fc6-9bf7-4e78-b4f2-5ab0c0dc1f50");
411

    
412
	//Area Level
413
	public static final UUID uuidEuroMedAreaLevelTop = UUID.fromString("190d5758-4b96-4016-9412-6dc9c36ef5fd");
414
	public static final UUID uuidEuroMedAreaLevelFirst = UUID.fromString("d21503e3-875e-4abc-82ec-f812e3cfea84");
415
	public static final UUID uuidEuroMedAreaLevelSecond = UUID.fromString("97ac0bf5-b31c-487a-8ed5-a576f46c902c");
416
	public static final UUID uuidCaucasusAreaLevelFirst = UUID.fromString("1899cb19-c59e-425a-892f-6a4f9b115e4a");
417
    public static final UUID uuidCaucasusAreaLevelSecond = UUID.fromString("ccfd15bc-6e05-41c7-b839-f7241f518fe1");
418

    
419
	//languages
420
	public static final UUID uuidLangMajorcan = UUID.fromString("82d696d7-cb4e-49de-ac89-63a0e12ca766");
421
    public static final UUID uuidLangHighAragonese = UUID.fromString("c6e3f012-1b72-4b9a-a401-5ebe3aea4e0a");
422
    public static final UUID uuidLangValencian = UUID.fromString("a926ecb9-3e43-48ad-b5a3-11e7a8609a75");
423

    
424
	//REFERENCES
425
	public static int REF_ARTICLE = 1;
426
	public static int REF_PART_OF_OTHER_TITLE = 2;
427
	public static int REF_BOOK = 3;
428
	public static int REF_DATABASE = 4;
429
	public static int REF_INFORMAL = 5;
430
	public static int REF_NOT_APPLICABLE = 6;
431
	public static int REF_WEBSITE = 7;
432
	public static int REF_CD = 8;
433
	public static int REF_JOURNAL = 9;
434
	public static int REF_UNKNOWN = 10;
435
	public static int REF_PRINT_SERIES = 55;
436
	public static int REF_CONFERENCE_PROCEEDINGS = 56;
437
	public static int REF_JOURNAL_VOLUME = 57;
438

    
439

    
440

    
441
	//NameStatus
442
	public static int NAME_ST_NOM_INVAL = 1;
443
	public static int NAME_ST_NOM_ILLEG = 2;
444
	public static int NAME_ST_NOM_NUD = 3;
445
	public static int NAME_ST_NOM_REJ = 4;
446
	public static int NAME_ST_NOM_REJ_PROP = 5;
447
	public static int NAME_ST_NOM_UTIQUE_REJ = 6;
448
	public static int NAME_ST_NOM_UTIQUE_REJ_PROP = 7;
449
	public static int NAME_ST_NOM_CONS = 8;
450
	public static int NAME_ST_NOM_CONS_PROP = 9;
451
	public static int NAME_ST_ORTH_CONS = 10;
452
	public static int NAME_ST_ORTH_CONS_PROP = 11;
453
	public static int NAME_ST_NOM_SUPERFL = 12;
454
	public static int NAME_ST_NOM_AMBIG = 13;
455
	public static int NAME_ST_NOM_PROVIS = 14;
456
	public static int NAME_ST_NOM_DUB = 15;
457
	public static int NAME_ST_NOM_NOV = 16;
458
	public static int NAME_ST_NOM_CONFUS = 17;
459
	public static int NAME_ST_NOM_ALTERN = 18;
460
	public static int NAME_ST_COMB_INVAL = 19;
461

    
462

    
463
	//NameRelationShip
464
	public static int NAME_REL_IS_BASIONYM_FOR = 1;
465
	public static int NAME_REL_IS_LATER_HOMONYM_OF = 2;
466
	public static int NAME_REL_IS_REPLACED_SYNONYM_FOR = 3;
467
	public static int NAME_REL_IS_VALIDATION_OF = 4;
468
	public static int NAME_REL_IS_LATER_VALIDATION_OF = 5;
469
	public static int NAME_REL_IS_TYPE_OF = 6;
470
	public static int NAME_REL_IS_CONSERVED_TYPE_OF =7;
471
	public static int NAME_REL_IS_REJECTED_TYPE_OF = 8;
472
	public static int NAME_REL_IS_FIRST_PARENT_OF = 9;
473
	public static int NAME_REL_IS_SECOND_PARENT_OF = 10;
474
	public static int NAME_REL_IS_FEMALE_PARENT_OF = 11;
475
	public static int NAME_REL_IS_MALE_PARENT_OF = 12;
476
	public static int NAME_REL_IS_CONSERVED_AGAINST =13;
477
	public static int NAME_REL_IS_REJECTED_IN_FAVOUR_OF = 14;
478
	public static int NAME_REL_IS_TREATED_AS_LATER_HOMONYM_OF = 15;
479
	public static int NAME_REL_IS_ORTHOGRAPHIC_VARIANT_OF = 16;
480
	public static int NAME_REL_IS_ALTERNATIVE_NAME_FOR = 17;
481
	public static int NAME_REL_HAS_SAME_TYPE_AS = 18;
482
	public static int NAME_REL_IS_LECTOTYPE_OF = 61;
483
	public static int NAME_REL_TYPE_NOT_DESIGNATED = 62;
484

    
485
	//NameFacts
486
	public static String NAME_FACT_PROTOLOGUE = "Protologue";
487
	public static String NAME_FACT_ALSO_PUBLISHED_IN = "Also published in";
488
	public static String NAME_FACT_BIBLIOGRAPHY = "Bibliography";
489

    
490
	//TaxonRelationShip
491
	public static int TAX_REL_IS_INCLUDED_IN = 1;
492
	public static int TAX_REL_IS_SYNONYM_OF = 2;
493
	public static int TAX_REL_IS_MISAPPLIED_NAME_OF = 3;
494
	public static int TAX_REL_IS_PROPARTE_SYN_OF = 4;
495
	public static int TAX_REL_IS_PARTIAL_SYN_OF = 5;
496
	public static int TAX_REL_IS_HETEROTYPIC_SYNONYM_OF = 6;
497
	public static int TAX_REL_IS_HOMOTYPIC_SYNONYM_OF = 7;
498
	public static int TAX_REL_IS_PROPARTE_HOMOTYPIC_SYNONYM_OF = 101;
499
	public static int TAX_REL_IS_PROPARTE_HETEROTYPIC_SYNONYM_OF = 102;
500
	public static int TAX_REL_IS_PARTIAL_HOMOTYPIC_SYNONYM_OF = 103;
501
	public static int TAX_REL_IS_PARTIAL_HETEROTYPIC_SYNONYM_OF = 104;
502
	public static int TAX_REL_IS_PRO_PARTE_MISAPPLIED_NAME_OF = 110;  //does not really exist but as only used in BM export which is not in use anymore it serves as a placeholder for consistency
503

    
504

    
505

    
506
	//TaxonStatus
507
	public static int T_STATUS_ACCEPTED = 1;
508
	public static int T_STATUS_SYNONYM = 2;
509
	public static int T_STATUS_PARTIAL_SYN = 3;
510
	public static int T_STATUS_PRO_PARTE_SYN = 4;
511
	public static int T_STATUS_UNRESOLVED = 5;
512
	public static int T_STATUS_ORPHANED = 6;
513

    
514

    
515
	//Facts
516
	public static int FACT_DESCRIPTION = 1;
517
	public static int FACT_GROWTH_FORM = 2;
518
	public static int FACT_HARDINESS = 3;
519
	public static int FACT_ECOLOGY = 4;
520
	public static int FACT_PHENOLOGY = 5;
521
	public static int FACT_KARYOLOGY = 6;
522
	public static int FACT_ILLUSTRATION = 7;
523
	public static int FACT_IDENTIFICATION = 8;
524
	public static int FACT_OBSERVATION = 9;
525
	public static int FACT_DISTRIBUTION_EM = 10;
526
	public static int FACT_DISTRIBUTION_WORLD = 11;
527
	//E+M
528
	public static final UUID uuidFeatureMaps = UUID.fromString("8367730e-f3c3-4361-8360-a2057e4295ed");
529
	public static final UUID uuidFeatureConservationStatus = UUID.fromString("a32f33cd-1966-4a22-986c-94c5e688bbd1");
530
	public static final UUID uuidFeatureUse = UUID.fromString("199bbbd8-2db6-4335-b454-2e92ae02b699");
531
	public static final UUID uuidFeatureComments = UUID.fromString("31cc2b92-5cad-44e9-b50f-b8af591a527c");
532
	public static final UUID uuidFeatureDistrEM = UUID.fromString("a5ba7e7f-ca7f-4f50-afc7-73e76b3231d4");
533
	public static final UUID uuidFeatureDistrWorld = UUID.fromString("e4e24080-7017-47e6-924e-d2560fa68fb8");
534
	public static final UUID uuidFeatureEditorBrackets = UUID.fromString("b3b5bc1a-7ba8-4a39-9c0d-63ba599eb5d8");
535
	public static final UUID uuidFeatureEditorParenthesis = UUID.fromString("6ee10a2e-ff02-4cf4-a520-89630edc5b44");
536
	public static final UUID uuidFeatureInedited = UUID.fromString("c93e2968-bc52-4165-9755-ce37611faf01");
537
	public static final UUID uuidFeatureCommentsEditing = UUID.fromString("7a155021-158a-48bb-81d0-9a72b718e2de");
538

    
539
	//Salvador
540
	public static final UUID uuidFeatureDistributionGlobal = UUID.fromString("9bd09ada-7bb3-4fe5-be35-dc4564bdd161");
541
	public static final UUID uuidReporteParaElSalvador = UUID.fromString("1869a1a6-becb-468e-bc62-b2473f7d9391");
542
	public static final UUID uuidFeatureOtherReferences = UUID.fromString("f5dc30bd-a5b1-436d-8cc0-69a999e61590");
543
	public static final UUID uuidFeatureTaxonIllustrationReferences = UUID.fromString("6062122b-07c7-44e4-a9af-7daea0005819");
544
    public static final UUID uuidFeatureSpecimenNotes = UUID.fromString("3c657936-f51a-4bfa-9ea4-287926ac63e5");
545
    public static final UUID uuidFeatureEditorialNotes = UUID.fromString("5f971b66-1bc7-4b12-923e-2b4ee8b3737d");
546
    public static final UUID uuidFeatureHabitatSalvador = UUID.fromString("d03a5e2c-fd93-4fff-b0b3-e16cefbb9847");
547

    
548
	public static UUID uuidNomStatusCombIned = UUID.fromString("dde8a2e7-bf9e-42ec-b186-d5bde9c9c128");
549
	public static UUID uuidNomStatusSpNovIned = UUID.fromString("1a359ca1-9364-43bc-93e4-834bdcd52b72");
550
	public static UUID uuidNomStatusNomOrthCons = UUID.fromString("0f838183-ffa0-4014-928e-0e3a27eb3918");
551

    
552
	static NomenclaturalStatusType nomStatusCombIned;
553
	static NomenclaturalStatusType nomStatusSpNovIned;
554
	static NomenclaturalStatusType nomStatusNomOrthCons;
555

    
556
	public static NomenclaturalStatusType nomStatusTypeAbbrev2NewNomStatusType(String nomStatus){
557
		NomenclaturalStatusType result = null;
558
		if (nomStatus == null){
559
			return null;
560
		}else if (nomStatus.equalsIgnoreCase("comb. ined.")){
561
			if (nomStatusCombIned == null){
562
				nomStatusCombIned = NomenclaturalStatusType.NewInstance("comb. ined.", "comb. ined.", "comb. ined.", Language.LATIN());
563
				nomStatusCombIned.setUuid(uuidNomStatusCombIned);
564
				NomenclaturalStatusType.ALTERNATIVE().getVocabulary().addTerm(nomStatusCombIned);
565
			}
566
			result = nomStatusCombIned;
567
		}else if (nomStatus.equalsIgnoreCase("sp. nov. ined.")){
568
			if (nomStatusSpNovIned == null){
569
				nomStatusSpNovIned = NomenclaturalStatusType.NewInstance("sp. nov. ined.", "sp. nov. ined.", "sp. nov. ined.", Language.LATIN());
570
				nomStatusSpNovIned.setUuid(uuidNomStatusSpNovIned);
571
				NomenclaturalStatusType.ALTERNATIVE().getVocabulary().addTerm(nomStatusSpNovIned);
572
			}
573
			result = nomStatusSpNovIned;
574
		}else if (nomStatus.equalsIgnoreCase("nom. & orth. cons.")){
575
			if (nomStatusNomOrthCons == null){
576
				nomStatusNomOrthCons = NomenclaturalStatusType.NewInstance("nom. & orth. cons.", "nom. & orth. cons.", "nom. & orth. cons.", Language.LATIN());
577
				nomStatusNomOrthCons.setUuid(uuidNomStatusNomOrthCons);
578
				NomenclaturalStatusType.ALTERNATIVE().getVocabulary().addTerm(nomStatusNomOrthCons);
579
			}
580
			result = nomStatusNomOrthCons;
581
		}
582
		return result;
583
	}
584

    
585

    
586
	public static NomenclaturalStatus nomStatusFkToNomStatus(int nomStatusFk, String nomStatusLabel)  throws UnknownCdmTypeException{
587
		if (nomStatusFk == NAME_ST_NOM_INVAL){
588
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.INVALID());
589
		}else if (nomStatusFk == NAME_ST_NOM_ILLEG){
590
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.ILLEGITIMATE());
591
		}else if (nomStatusFk == NAME_ST_NOM_NUD){
592
			 return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.NUDUM());
593
		}else if (nomStatusFk == NAME_ST_NOM_REJ){
594
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.REJECTED());
595
		}else if (nomStatusFk == NAME_ST_NOM_REJ_PROP){
596
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.REJECTED_PROP());
597
		}else if (nomStatusFk == NAME_ST_NOM_UTIQUE_REJ){
598
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.UTIQUE_REJECTED());
599
		}else if (nomStatusFk == NAME_ST_NOM_UTIQUE_REJ_PROP){
600
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.UTIQUE_REJECTED_PROP());
601
		}else if (nomStatusFk == NAME_ST_NOM_CONS){
602
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.CONSERVED());
603
		}else if (nomStatusFk == NAME_ST_NOM_CONS_PROP){
604
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.CONSERVED_PROP());
605
		}else if (nomStatusFk == NAME_ST_ORTH_CONS){
606
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.ORTHOGRAPHY_CONSERVED());
607
		}else if (nomStatusFk == NAME_ST_ORTH_CONS_PROP){
608
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.ORTHOGRAPHY_CONSERVED_PROP());
609
		}else if (nomStatusFk == NAME_ST_NOM_SUPERFL){
610
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.SUPERFLUOUS());
611
		}else if (nomStatusFk == NAME_ST_NOM_AMBIG){
612
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.AMBIGUOUS());
613
		}else if (nomStatusFk == NAME_ST_NOM_PROVIS){
614
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.PROVISIONAL());
615
		}else if (nomStatusFk == NAME_ST_NOM_DUB){
616
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.DOUBTFUL());
617
		}else if (nomStatusFk == NAME_ST_NOM_NOV){
618
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.NOVUM());
619
		}else if (nomStatusFk == NAME_ST_NOM_CONFUS){
620
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.CONFUSUM());
621
		}else if (nomStatusFk == NAME_ST_NOM_ALTERN){
622
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.ALTERNATIVE());
623
		}else if (nomStatusFk == NAME_ST_COMB_INVAL){
624
			return NomenclaturalStatus.NewInstance(NomenclaturalStatusType.COMBINATION_INVALID());
625
		}else {
626
			NomenclaturalStatusType statusType = nomStatusTypeAbbrev2NewNomStatusType(nomStatusLabel);
627
			NomenclaturalStatus result = NomenclaturalStatus.NewInstance(statusType);
628
			if (result != null){
629
				return result;
630
			}
631
			throw new UnknownCdmTypeException("Unknown NomenclaturalStatus (id=" + Integer.valueOf(nomStatusFk).toString() + ")");
632
		}
633
	}
634

    
635
	public static UUID getEMAreaUuid(String areaId){
636
		if (areaId == null){
637
			logger.warn("No AreaId given");
638
			return null;
639
		}else if (areaId.equals("EM")){return uuidEM;
640
		}else if (areaId.equals("EUR")){return uuidEUR;
641
		}else if (areaId.equals("14")){return uuid14;
642
		}else if (areaId.equals("20")){return uuid20;
643
		}else if (areaId.equals("21")){return uuid21;
644
		}else if (areaId.equals("33")){return uuid33;
645
		}else if (areaId.equals("Da")){return uuidDa;
646
		}else if (areaId.equals("Fe")){return uuidFe;
647
		}else if (areaId.equals("Fa")){return uuidFa;
648
		}else if (areaId.equals("Br")){return uuidBr;
649
		}else if (areaId.equals("Is")){return uuidIs;
650
		}else if (areaId.equals("Hb")){return uuidHb;
651
		}else if (areaId.equals("No")){return uuidNo;
652
		}else if (areaId.equals("Sb")){return uuidSb;
653
		}else if (areaId.equals("Su")){return uuidSu;
654
		}else if (areaId.equals("Au")){return uuidAu;
655
		}else if (areaId.equals("Be")){return uuidBe;
656
		}else if (areaId.equals("Cz")){return uuidCz;
657
		}else if (areaId.equals("Ge")){return uuidGe;
658
		}else if (areaId.equals("Hu")){return uuidHu;
659
		}else if (areaId.equals("Ho")){return uuidHo;
660
		}else if (areaId.equals("Po")){return uuidPo;
661
		}else if (areaId.equals("He")){return uuidHe;
662
		}else if (areaId.equals("Bl")){return uuidBl;
663
		}else if (areaId.equals("Co")){return uuidCo;
664
		}else if (areaId.equals("Ga")){return uuidGa;
665
		}else if (areaId.equals("Lu")){return uuidLu;
666
		}else if (areaId.equals("Sa")){return uuidSa;
667
		}else if (areaId.equals("Hs")){return uuidHs;
668
		}else if (areaId.equals("Al")){return uuidAl;
669
		}else if (areaId.equals("Bu")){return uuidBu;
670
		}else if (areaId.equals("Gr")){return uuidGr;
671
		}else if (areaId.equals("It")){return uuidIt;
672
		}else if (areaId.equals("Cr")){return uuidCr;
673
		}else if (areaId.equals("Rm")){return uuidRm;
674
		}else if (areaId.equals("Si(S)")){return uuidSi_S;
675
		}else if (areaId.equals("Tu(E)")){return uuidTu_E;
676
		}else if (areaId.equals("Ju")){return uuidJu;
677
		}else if (areaId.equals("Uk(K)")){return uuidUk_K;
678
		}else if (areaId.equals("Uk")){return uuidUk;
679
		}else if (areaId.equals("Ag")){return uuidAg;
680
		}else if (areaId.equals("Eg")){return uuidEg;
681
		}else if (areaId.equals("Li")){return uuidLi;
682
		}else if (areaId.equals("Ma")){return uuidMa;
683
		}else if (areaId.equals("Tn")){return uuidTn;
684
		}else if (areaId.equals("Az")){return uuidAz;
685
		}else if (areaId.equals("Sg")){return uuidSg;
686
		}else if (areaId.equals("Ab")){return uuidAb;
687
		}else if (areaId.equals("Ar")){return uuidAr;
688
		}else if (areaId.equals("Ab(A)")){return uuidAb_A;
689
		}else if (areaId.equals("Gg")){return uuidGg;
690
		}else if (areaId.equals("Ab(N)")){return uuidAb_N;
691
		}else if (areaId.equals("Cy")){return uuidCy;
692
		}else if (areaId.equals("AE(G)")){return uuidAE_G;
693
		}else if (areaId.equals("Le")){return uuidLe;
694
		}else if (areaId.equals("Sn")){return uuidSn;
695
		}else if (areaId.equals("Tu(A)")){return uuidTu_A;
696
		}else if (areaId.equals("Tu")){return uuidTu;
697
		}else if (areaId.equals("Au(A)")){return uuidAu_A;
698
		}else if (areaId.equals("Au(L)")){return uuidAu_L;
699
		}else if (areaId.equals("Az(C)")){return uuidAz_C;
700
		}else if (areaId.equals("Az(F)")){return uuidAz_F;
701
		}else if (areaId.equals("Az(G)")){return uuidAz_G;
702
		}else if (areaId.equals("Az(P)")){return uuidAz_P;
703
		}else if (areaId.equals("Az(S)")){return uuidAz_S;
704
		}else if (areaId.equals("Az(J)")){return uuidAz_J;
705
		}else if (areaId.equals("Az(M)")){return uuidAz_M;
706
		}else if (areaId.equals("Az(T)")){return uuidAz_T;
707
		}else if (areaId.equals("Be(B)")){return uuidBe_B;
708
		}else if (areaId.equals("Be(L)")){return uuidBe_L;
709
		}else if (areaId.equals("Bl(I)")){return uuidBl_I;
710
		}else if (areaId.equals("Bl(M)")){return uuidBl_M;
711
		}else if (areaId.equals("Bl(N)")){return uuidBl_N;
712
		}else if (areaId.equals("BH")){return uuidBH;
713
		}else if (areaId.equals("By")){return uuidBy;
714
		}else if (areaId.equals("Ca")){return uuidCa;
715
		}else if (areaId.equals("Ca(F)")){return uuidCa_F;
716
		}else if (areaId.equals("Ca(G)")){return uuidCa_G;
717
		}else if (areaId.equals("Ca(C)")){return uuidCa_C;
718
		}else if (areaId.equals("Ca(H)")){return uuidCa_H;
719
		}else if (areaId.equals("Ca(L)")){return uuidCa_L;
720
		}else if (areaId.equals("Ca(P)")){return uuidCa_P;
721
		}else if (areaId.equals("Ca(T)")){return uuidCa_T;
722
		}else if (areaId.equals("Cs")){return uuidCs;
723
		}else if (areaId.equals("Ct")){return uuidCt;
724
		}else if (areaId.equals("Es")){return uuidEs;
725
		}else if (areaId.equals("Ga(C)")){return uuidGa_C;
726
		}else if (areaId.equals("Ga(F)")){return uuidGa_F;
727
		}else if (areaId.equals("Gg(A)")){return uuidGg_A;
728
		}else if (areaId.equals("Gg(D)")){return uuidGg_D;
729
		}else if (areaId.equals("Gg(G)")){return uuidGg_G;
730
		}else if (areaId.equals("Hs(A)")){return uuidHs_A;
731
		}else if (areaId.equals("Hs(G)")){return uuidHs_G;
732
		}else if (areaId.equals("Hs(S)")){return uuidHs_S;
733
		}else if (areaId.equals("Ir")){return uuidIr;
734
		}else if (areaId.equals("It(I)")){return uuidIt_I;
735
		}else if (areaId.equals("It(S)")){return uuidIt_S;
736
		}else if (areaId.equals("Jo")){return uuidJo;
737
		}else if (areaId.equals("Kz")){return uuidKz;
738
		}else if (areaId.equals("La")){return uuidLa;
739
		}else if (areaId.equals("Lt")){return uuidLt;
740
		}else if (areaId.equals("Ma(E)")){return uuidMa_E;
741
		}else if (areaId.equals("Ma(S)")){return uuidMa_S;
742
		}else if (areaId.equals("Mk")){return uuidMk;
743
		}else if (areaId.equals("Md")){return uuidMd;
744
		}else if (areaId.equals("Md(D)")){return uuidMd_D;
745
		}else if (areaId.equals("Md(M)")){return uuidMd_M;
746
		}else if (areaId.equals("Md(P)")){return uuidMd_P;
747
		}else if (areaId.equals("Si(M)")){return uuidSi_M;
748
		}else if (areaId.equals("Mo")){return uuidMo;
749
		}else if (areaId.equals("Rf")){return uuidRf;
750
		}else if (areaId.equals("Rf(C)")){return uuidRf_C;
751
		}else if (areaId.equals("Rf(E)")){return uuidRf_E;
752
		}else if (areaId.equals("Rf(K)")){return uuidRf_K;
753
		}else if (areaId.equals("Rf(CS)")){return uuidRf_CS;
754
		}else if (areaId.equals("Rf(N)")){return uuidRf_N;
755
		}else if (areaId.equals("Rf(NW)")){return uuidRf_NW;
756
		}else if (areaId.equals("Rf(A)")){return uuidRf_A;
757
		}else if (areaId.equals("Rf(S)")){return uuidRf_S;
758
		}else if (areaId.equals("Sk")){return uuidSk;
759
		}else if (areaId.equals("Sl")){return uuidSl;
760
		}else if (areaId.equals("Sy")){return uuidSy;
761
		}else if (areaId.equals("Uk(U)")){return uuidUk_U;
762
		}else if (areaId.equals("SM")){return uuidSM;
763
		}else if (areaId.equals("Yu(K)")){return uuidYu_K;
764
		}else if (areaId.equals("Cg")){return uuidCg;
765
		}else if (areaId.equals("Sr")){return uuidSr;
766
		}else if (areaId.equals("IJ")){return uuidIJ;
767
		}else if (areaId.equals("LS")){return uuidLS;
768
		}else if (areaId.equals("Rs")){return uuidRs;
769
		}else if (areaId.equals("Si")){return uuidSi;
770
		}else if (areaId.equals("Az(L)")){return uuidAz_L;
771
		}else if (areaId.equals("Hb(E)")){return uuidHb_E;
772
		}else if (areaId.equals("Hb(N)")){return uuidHb_N;
773
		}else if (areaId.equals("Ga(M)")){return uuidGa_M;
774
		}else if (areaId.equals("Ma(M)")){return uuidMa_M;
775
		}else if (areaId.equals("Rs(N)")){return uuidRs_N;
776
		}else if (areaId.equals("Rs(B)")){return uuidRs_B;
777
		}else if (areaId.equals("Rs(C)")){return uuidRs_C;
778
		}else if (areaId.equals("Rs(W)")){return uuidRs_W;
779
		}else if (areaId.equals("Rs(E)")){return uuidRs_E;
780
		}else if (areaId.equals("AE")){return uuidAE;
781
		}else if (areaId.equals("AE(T)")){return uuidAE_T;
782
		}else if (areaId.equals("Rs(K)")){return uuidRs_K;
783
		}else if (areaId.equals("Cc")){return uuidCc;
784
		}else if (areaId.equals("Bt")){return uuidBt;
785
		}else if (areaId.equals("Tcs")){return uuidTcs;
786
        }else if (areaId.equals("Azores")){return null;  //these are duplicates and are handled differently
787
        }else if (areaId.equals("Canary Is.")){return null; //these are duplicates and are handled differently
788
        }else{
789
		    logger.warn("Area not found: " + areaId);
790
			return null;
791
		}
792

    
793
	}
794

    
795

    
796
	//TypeDesignation
797
	public static SpecimenTypeDesignationStatus typeStatusId2TypeStatus (int typeStatusId)  throws UnknownCdmTypeException{
798
		switch (typeStatusId){
799
			case 0: return null;
800
			case 1: return SpecimenTypeDesignationStatus.HOLOTYPE();
801
			case 2: return SpecimenTypeDesignationStatus.LECTOTYPE();
802
			case 3: return SpecimenTypeDesignationStatus.NEOTYPE();
803
			case 4: return SpecimenTypeDesignationStatus.EPITYPE();
804
			case 5: return SpecimenTypeDesignationStatus.ISOLECTOTYPE();
805
			case 6: return SpecimenTypeDesignationStatus.ISONEOTYPE();
806
			case 7: return SpecimenTypeDesignationStatus.ISOTYPE();
807
			case 8: return SpecimenTypeDesignationStatus.PARANEOTYPE();
808
			case 9: return SpecimenTypeDesignationStatus.PARATYPE();
809
			case 10: return SpecimenTypeDesignationStatus.SECOND_STEP_LECTOTYPE();
810
			case 11: return SpecimenTypeDesignationStatus.SECOND_STEP_NEOTYPE();
811
			case 12: return SpecimenTypeDesignationStatus.SYNTYPE();
812
			case 21: return SpecimenTypeDesignationStatus.ICONOTYPE();
813
			case 22: return SpecimenTypeDesignationStatus.PHOTOTYPE();
814
			default: {
815
				throw new UnknownCdmTypeException("Unknown TypeDesignationStatus (id=" + Integer.valueOf(typeStatusId).toString() + ")");
816
			}
817
		}
818
	}
819

    
820
	//TypeDesignation
821
	public static TaxonRelationshipType taxonRelId2TaxonRelType (int relTaxonTypeId, ResultWrapper<Boolean> isInverse, ResultWrapper<Boolean> isDoubtful)  throws UnknownCdmTypeException{
822
		isInverse.setValue(false);
823
		switch (relTaxonTypeId){
824
			case 0: return null;
825
			case 11: return TaxonRelationshipType.CONGRUENT_TO();
826
			case 12: isInverse.setValue(true); return TaxonRelationshipType.INCLUDES();
827
			case 13: isInverse.setValue(true); return TaxonRelationshipType.CONGRUENT_OR_INCLUDES();
828
			case 14: return TaxonRelationshipType.INCLUDES();
829
			case 15: return TaxonRelationshipType.CONGRUENT_OR_INCLUDES();
830
			case 16: return TaxonRelationshipType.INCLUDED_OR_INCLUDES();
831
			case 17: return TaxonRelationshipType.CONGRUENT_OR_INCLUDED_OR_INCLUDES();
832
			case 18: return TaxonRelationshipType.OVERLAPS();
833
			case 19: return TaxonRelationshipType.CONGRUENT_OR_OVERLAPS();
834
			case 20: isInverse.setValue(true); return TaxonRelationshipType.INCLUDES_OR_OVERLAPS();
835
			case 21: isInverse.setValue(true); return TaxonRelationshipType.CONGRUENT_OR_INCLUDES_OR_OVERLAPS();
836
			case 22: return TaxonRelationshipType.INCLUDES_OR_OVERLAPS();
837
			case 23: return TaxonRelationshipType.CONGRUENT_OR_INCLUDES_OR_OVERLAPS();
838
			case 24: return TaxonRelationshipType.INCLUDED_OR_INCLUDES_OR_OVERLAPS();
839

    
840
			case 26: return TaxonRelationshipType.EXCLUDES();
841

    
842
			//TODO other relationshipTypes
843

    
844
			case 40: return TaxonRelationshipType.NOT_CONGRUENT_TO();
845

    
846
			//how to implement this, what is a purely doubtful relationship ??
847
//			case 42: isDoubtful.setValue(true); return TaxonRelationshipType.();
848

    
849
			case 43: isDoubtful.setValue(true); return TaxonRelationshipType.CONGRUENT_TO();
850
			case 44: isInverse.setValue(true);isDoubtful.setValue(true); return TaxonRelationshipType.INCLUDES();
851
			case 46: isDoubtful.setValue(true); return TaxonRelationshipType.INCLUDES();
852
			case 48: isDoubtful.setValue(true); return TaxonRelationshipType.INCLUDED_OR_INCLUDES();
853
			case 50: isDoubtful.setValue(true); return TaxonRelationshipType.OVERLAPS();
854
			case 51: isDoubtful.setValue(true); return TaxonRelationshipType.CONGRUENT_OR_OVERLAPS();
855
			case 58: isDoubtful.setValue(true); return TaxonRelationshipType.EXCLUDES();
856

    
857

    
858
			default: {
859
				throw new UnknownCdmTypeException("Unknown TypeDesignationStatus (id=" + Integer.valueOf(relTaxonTypeId).toString() + ")");
860
			}
861
		}
862
	}
863

    
864
	//TypeDesignation
865
	public static HybridRelationshipType relNameId2HybridRel (int relNameId)  throws UnknownCdmTypeException{
866
		switch (relNameId){
867
			case 0: return null;
868
			case 9: return HybridRelationshipType.FIRST_PARENT();
869
			case 10: return HybridRelationshipType.SECOND_PARENT();
870
			case 11: return HybridRelationshipType.FEMALE_PARENT();
871
			case 12: return HybridRelationshipType.MALE_PARENT();
872
			default: {
873
				throw new UnknownCdmTypeException("Unknown HybridRelationshipType (id=" + Integer.valueOf(relNameId).toString() + ")");
874
			}
875
		}
876
	}
877

    
878
	//OccStatus
879
	public static PresenceAbsenceTerm occStatus2PresenceAbsence (int occStatusId)  throws UnknownCdmTypeException{
880
		switch (occStatusId){
881
			case 0: return null;
882
			case 110: return PresenceAbsenceTerm.CULTIVATED_REPORTED_IN_ERROR();
883
			case 120: return PresenceAbsenceTerm.CULTIVATED();
884
			case 210: return PresenceAbsenceTerm.INTRODUCED_REPORTED_IN_ERROR();
885
			case 220: return PresenceAbsenceTerm.INTRODUCED_PRESENCE_QUESTIONABLE();
886
			case 230: return PresenceAbsenceTerm.INTRODUCED_FORMERLY_INTRODUCED();
887
			case 240: return PresenceAbsenceTerm.INTRODUCED_DOUBTFULLY_INTRODUCED();
888
			case 250: return PresenceAbsenceTerm.INTRODUCED();
889
			case 260: return PresenceAbsenceTerm.INTRODUCED_UNCERTAIN_DEGREE_OF_NATURALISATION();
890
			case 270: return PresenceAbsenceTerm.CASUAL();
891
			case 280: return PresenceAbsenceTerm.NATURALISED();
892
			case 310: return PresenceAbsenceTerm.NATIVE_REPORTED_IN_ERROR();
893
			case 320: return PresenceAbsenceTerm.NATIVE_PRESENCE_QUESTIONABLE();
894
			case 330: return PresenceAbsenceTerm.NATIVE_FORMERLY_NATIVE();
895
			case 340: return PresenceAbsenceTerm.NATIVE_DOUBTFULLY_NATIVE();
896
			case 350: return PresenceAbsenceTerm.NATIVE();
897
			case 999: {
898
//					logger.info("endemic for EM can not be transformed in legal status. Used 'PRESENT' instead");
899
					//TODO preliminary
900
					return PresenceAbsenceTerm.ENDEMIC_FOR_THE_RELEVANT_AREA();
901
				}
902
			default: {
903
				throw new UnknownCdmTypeException("Unknown occurrence status  (id=" + Integer.valueOf(occStatusId).toString() + ")");
904
			}
905
		}
906
	}
907

    
908

    
909
	//FactCategory
910
	public static Feature factCategory2Feature (int factCategoryId)  throws UnknownCdmTypeException{
911
		switch (factCategoryId){
912
			case 0: return null;
913
			case 1: return Feature.DESCRIPTION();
914
			case 4: return Feature.ECOLOGY();
915
			case 5: return Feature.PHENOLOGY();
916
			case 12: return Feature.COMMON_NAME();
917
			case 13: return Feature.OCCURRENCE();
918
			case 99: return Feature.CITATION();
919
			default: {
920
				throw new UnknownCdmTypeException("Unknown FactCategory (id=" + Integer.valueOf(factCategoryId).toString() + ")");
921
			}
922
		}
923
	}
924

    
925
	public static UUID getFeatureUuid(String key) {
926
		if (key == null){
927
			return null;
928
		}else if (key.equalsIgnoreCase("14-Maps")){ return uuidFeatureMaps;
929
		}else if (key.equalsIgnoreCase("301-Conservation Status")){ return uuidFeatureConservationStatus;
930
		}else if (key.equalsIgnoreCase("302-Use")){ return uuidFeatureUse;
931
		}else if (key.equalsIgnoreCase("303-Comments")){ return uuidFeatureComments;
932

    
933
		}else if (key.equalsIgnoreCase("10-general distribution (Euro+Med)")){ return uuidFeatureDistrEM;
934
		}else if (key.equalsIgnoreCase("11-general distribution (world)")){ return uuidFeatureDistrWorld;
935
		}else if (key.equalsIgnoreCase("250-Editor_Brackets")){ return uuidFeatureEditorBrackets;
936
		}else if (key.equalsIgnoreCase("251-Editor_Parenthesis")){ return uuidFeatureEditorParenthesis;
937
		}else if (key.equalsIgnoreCase("252-Inedited")){ return uuidFeatureInedited;
938
		}else if (key.equalsIgnoreCase("253-Comments on editing process")){ return uuidFeatureCommentsEditing;
939

    
940
		//salvador
941
		}else if (key.equalsIgnoreCase("302-Usos")){ return Feature.uuidUses;
942
		}else if (key.equalsIgnoreCase("303-Distribución global")){ return uuidFeatureDistributionGlobal;
943
		}else if (key.equalsIgnoreCase("306-Nombre(s) común(es)")){ return Feature.uuidCommonName;
944
		}else if (key.equalsIgnoreCase("307-Muestras de herbario")){ return Feature.uuidSpecimen;
945
        }else if (key.equalsIgnoreCase("309-Reporte para El Salvador")){ return uuidReporteParaElSalvador;
946
        }else if (key.equalsIgnoreCase("310-Otras referencias")){ return uuidFeatureOtherReferences;
947
        }else if (key.equalsIgnoreCase("311-Ilustración(es)")){ return uuidFeatureTaxonIllustrationReferences;
948
        }else if (key.equalsIgnoreCase("312-Imágen")){ return Feature.uuidImage;
949
        }else if (key.equalsIgnoreCase("350-Descripción*")){ return Feature.uuidDescription;
950
        }else if (key.equalsIgnoreCase("1800-Notas de muestras*")){ return uuidFeatureSpecimenNotes;
951
        }else if (key.equalsIgnoreCase("1900-Notas editoriales*")){ return uuidFeatureEditorialNotes;
952
        }else if (key.equalsIgnoreCase("2000-Habitat en El Salvador*")){ return uuidFeatureHabitatSalvador;
953

    
954

    
955
		}else{
956
			return null;
957
		}
958
	}
959

    
960

    
961
	static Rank collSpeciesRank;
962
	/**
963
	 * @param i
964
	 * @return
965
	 */
966
	private static Rank rankId2NewRank(Integer rankId, boolean switchRank) {
967
		Rank result = null;
968
		if (rankId == null){
969
			return null;
970
		}else if (rankId == 57){
971

    
972
			if (collSpeciesRank == null){
973
				collSpeciesRank = Rank.NewInstance(RankClass.SpeciesGroup, "Collective species", "Coll. species", "coll.");
974
				collSpeciesRank.setUuid(Rank.uuidCollSpecies);
975
				OrderedTermVocabulary<Rank> voc = (OrderedTermVocabulary<Rank>)Rank.SPECIES().getVocabulary();
976
				voc.addTermBelow(collSpeciesRank, Rank.SPECIESGROUP());
977
			}
978
			result = collSpeciesRank;
979
		}
980
		return result;
981
	}
982

    
983

    
984
	public static Rank rankId2Rank (ResultSet rs, boolean useUnknown, boolean switchSpeciesGroup) throws UnknownCdmTypeException{
985
		Rank result;
986
		try {
987
			int rankId = rs.getInt("rankFk");
988

    
989
			String abbrev = rs.getString("rankAbbrev");
990
			String rankName = rs.getString("rank");
991
			if (logger.isDebugEnabled()){logger.debug(rankId);}
992
			if (logger.isDebugEnabled()){logger.debug(abbrev);}
993
			if (logger.isDebugEnabled()){logger.debug(rankName);}
994

    
995
			if (switchSpeciesGroup){
996
				if (rankId == 59){
997
					rankId = 57;
998
				}else if (rankId == 57){
999
					rankId = 59;
1000
				}
1001
			}
1002
			try {
1003
				result = Rank.getRankByLatinNameOrIdInVoc(abbrev);
1004
			} catch (UnknownCdmTypeException e) {
1005
				try {
1006
					result = Rank.getRankByLatinNameOrIdInVoc(rankName);
1007
				} catch (UnknownCdmTypeException e1) {
1008
					switch (rankId){
1009
						case 0: return null;
1010
						case 1: return Rank.KINGDOM();
1011
						case 3: return Rank.SUBKINGDOM();
1012
						case 5: return Rank.PHYLUM();
1013
						case 7: return Rank.SUBPHYLUM();
1014
						case 8: return Rank.DIVISION();
1015
						case 9: return Rank.SUBDIVISION();
1016
						case 10: return Rank.CLASS();
1017
						case 13: return Rank.SUBCLASS();
1018
						case 16: return Rank.SUPERORDER();
1019
						case 18: return Rank.ORDER();
1020
						case 19: return Rank.SUBORDER();
1021
						case 20: return Rank.FAMILY();
1022
						case 25: return Rank.SUBFAMILY();
1023
						case 30: return Rank.TRIBE();
1024
						case 35: return Rank.SUBTRIBE();
1025
						case 40: return Rank.GENUS();
1026
						case 42: return Rank.SUBGENUS();
1027
						case 45: return Rank.SECTION_BOTANY();
1028
						case 47: return Rank.SUBSECTION_BOTANY();
1029
						case 50: return Rank.SERIES();
1030
						case 52: return Rank.SUBSERIES();
1031
						case 58: return Rank.SPECIESAGGREGATE();
1032
						case 59: return Rank.SPECIESGROUP();
1033
						case 60: return Rank.SPECIES();
1034
						case 61: return Rank.GREX_INFRASPEC();
1035
						case 65: return Rank.SUBSPECIES();
1036
						case 66: {System.out.println("Rank 66 not yet implemented"); throw new UnknownCdmTypeException("Unknown Rank id" + Integer.valueOf(rankId).toString());}
1037
						case 67: {System.out.println("Rank 67 not yet implemented"); throw new UnknownCdmTypeException("Unknown Rank id" + Integer.valueOf(rankId).toString());}
1038
						case 68: return Rank.CONVAR();
1039
						case 70: return Rank.VARIETY();
1040
						case 73: return Rank.SUBVARIETY();
1041
						case 80: return Rank.FORM();
1042
						case 82: return Rank.SUBFORM();
1043
						case 84: return Rank.SPECIALFORM();
1044
						case 98: return Rank.INFRAGENERICTAXON();
1045
						case 99: return Rank.INFRASPECIFICTAXON();
1046

    
1047
						case 750: return Rank.SUPERCLASS();
1048
						case 780: return Rank.INFRACLASS();
1049
						case 820: return Rank.INFRAORDER();
1050

    
1051
						case 830: return Rank.SUPERFAMILY();
1052

    
1053
						default: {
1054
							Rank rank = rankId2NewRank(57, switchSpeciesGroup);
1055
							if (rank != null){
1056
								return rank;
1057
							}
1058
							if (useUnknown){
1059
								logger.error("Rank unknown: " + rankId + ". Created UNKNOWN_RANK");
1060
								return Rank.UNKNOWN_RANK();
1061
							}
1062
							throw new UnknownCdmTypeException("Unknown Rank id" + Integer.valueOf(rankId).toString());
1063
						}
1064
					}
1065
				}
1066
			}
1067
			return result;
1068
		} catch (SQLException e) {
1069
			e.printStackTrace();
1070
			logger.warn("Exception occurred. Created UNKNOWN_RANK instead");
1071
			return Rank.UNKNOWN_RANK();
1072
		}
1073
	}
1074

    
1075

    
1076
	public static Integer rank2RankId (Rank rank){
1077
		if (rank == null){
1078
			return null;
1079
		}
1080
		else if (rank.equals(Rank.KINGDOM())){		return 1;}
1081
		else if (rank.equals(Rank.SUBKINGDOM())){	return 3;}
1082
		else if (rank.equals(Rank.PHYLUM())){		return 5;}
1083
		else if (rank.equals(Rank.SUBPHYLUM())){	return 7;}
1084
		else if (rank.equals(Rank.DIVISION())){		return 8;}
1085
		else if (rank.equals(Rank.SUBDIVISION())){	return 9;}
1086

    
1087
		else if (rank.equals(Rank.CLASS())){		return 10;}
1088
		else if (rank.equals(Rank.SUBCLASS())){		return 13;}
1089
		else if (rank.equals(Rank.SUPERORDER())){	return 16;}
1090
		else if (rank.equals(Rank.ORDER())){		return 18;}
1091
		else if (rank.equals(Rank.SUBORDER())){		return 19;}
1092
		else if (rank.equals(Rank.FAMILY())){		return 20;}
1093
		else if (rank.equals(Rank.SUBFAMILY())){	return 25;}
1094
		else if (rank.equals(Rank.TRIBE())){		return 30;}
1095
		else if (rank.equals(Rank.SUBTRIBE())){		return 35;}
1096
		else if (rank.equals(Rank.GENUS())){		return 40;}
1097
		else if (rank.equals(Rank.SUBGENUS())){		return 42;}
1098
		else if (rank.equals(Rank.SECTION_BOTANY())){		return 45;}
1099
		else if (rank.equals(Rank.SUBSECTION_BOTANY())){	return 47;}
1100
		else if (rank.equals(Rank.SERIES())){		return 50;}
1101
		else if (rank.equals(Rank.SUBSERIES())){	return 52;}
1102
		else if (rank.equals(Rank.SPECIESAGGREGATE())){	return 58;}
1103
		//TODO
1104
		//		else if (rank.equals(Rank.XXX())){	return 59;}
1105
		else if (rank.equals(Rank.SPECIES())){		return 60;}
1106
		else if (rank.equals(Rank.SUBSPECIES())){	return 65;}
1107
		else if (rank.equals(Rank.CONVAR())){		return 68;}
1108
		else if (rank.equals(Rank.VARIETY())){		return 70;}
1109
		else if (rank.equals(Rank.SUBVARIETY())){	return 73;}
1110
		else if (rank.equals(Rank.FORM())){			return 80;}
1111
		else if (rank.equals(Rank.SUBFORM())){		return 82;}
1112
		else if (rank.equals(Rank.SPECIALFORM())){	return 84;}
1113
		else if (rank.equals(Rank.INFRAGENERICTAXON())){	return 98;}
1114
		else if (rank.equals(Rank.INFRASPECIFICTAXON())){	return 99;}
1115

    
1116
		else if (rank.equals(Rank.SUPERCLASS())){	return 750;}
1117
		else if (rank.equals(Rank.INFRACLASS())){	return 780;}
1118
		else if (rank.equals(Rank.INFRAORDER())){	return 820;}
1119
		else if (rank.equals(Rank.SUPERFAMILY())){	return 830;}
1120

    
1121
		else {
1122
			//TODO Exception
1123
			logger.warn("Rank not yet supported in Berlin Model: "+ rank.getLabel());
1124
			return null;
1125
		}
1126
	}
1127

    
1128
	public static Integer textData2FactCategoryFk (Feature feature){
1129
		if (feature == null){return null;}
1130
		if (feature.equals(Feature.DESCRIPTION())){
1131
			return 1;
1132
		}else if (feature.equals(Feature.ECOLOGY())){
1133
			return 4;
1134
		}else if (feature.equals(Feature.PHENOLOGY())){
1135
			return 5;
1136
		}else if (feature.equals(Feature.COMMON_NAME())){
1137
			return 12;
1138
		}else if (feature.equals(Feature.OCCURRENCE())){
1139
			return 13;
1140
		}else if (feature.equals(Feature.CITATION())){
1141
			return 99;
1142
		}else{
1143
			logger.debug("Unknown Feature.");
1144
			return null;
1145
		}
1146
	}
1147

    
1148

    
1149
	public static Integer taxonBase2statusFk (TaxonBase<?> taxonBase){
1150
		if (taxonBase == null){return null;}
1151
		if (taxonBase.isInstanceOf(Taxon.class)){
1152
			return T_STATUS_ACCEPTED;
1153
		}else if (taxonBase.isInstanceOf(Synonym.class)){
1154
			return T_STATUS_SYNONYM;
1155
		}else{
1156
			logger.warn("Unknown ");
1157
			return T_STATUS_UNRESOLVED;
1158
		}
1159
		//TODO
1160
//		public static int T_STATUS_PARTIAL_SYN = 3;
1161
//		public static int T_STATUS_PRO_PARTE_SYN = 4;
1162
//		public static int T_STATUS_UNRESOLVED = 5;
1163
//		public static int T_STATUS_ORPHANED = 6;
1164
	}
1165

    
1166
	public static Integer ref2refCategoryId (Reference ref){
1167
		if (ref == null){
1168
			return null;
1169
		}
1170
		else if (ref.getType().equals(ReferenceType.Article)){ return REF_ARTICLE;}
1171
		else if (ref.getType().equals(ReferenceType.Section)){ return REF_PART_OF_OTHER_TITLE;}
1172
		else if (ref.getType().equals(ReferenceType.Book)){	   return REF_BOOK;}
1173
		else if (ref.getType().equals(ReferenceType.Database)){return REF_DATABASE;}
1174
		else if (ref.getType().equals(ReferenceType.WebPage)){	return REF_WEBSITE;}
1175
		else if (ref.getType().equals(ReferenceType.CdDvd)){	return REF_CD;}
1176
		else if (ref.getType().equals(ReferenceType.Journal)){	return REF_JOURNAL;}
1177
		else if (ref.getType().equals(ReferenceType.Generic)){	return REF_UNKNOWN;}
1178
		else if (ref.getType().equals(ReferenceType.PrintSeries)){
1179
			logger.warn("Print Series is not a standard Berlin Model category");
1180
			return REF_PRINT_SERIES;
1181
		}
1182
		else if (ref.getType().equals(ReferenceType.Proceedings)){
1183
			logger.warn("Proceedings is not a standard Berlin Model category");
1184
			return REF_CONFERENCE_PROCEEDINGS;
1185
		}
1186
//		else if (ref instanceof ){	return REF_JOURNAL_VOLUME;}
1187
		else if (ref.getType().equals(ReferenceType.Patent)){	return REF_NOT_APPLICABLE;}
1188
		else if (ref.getType().equals(ReferenceType.PersonalCommunication)){	return REF_INFORMAL;}
1189
		else if (ref.getType().equals(ReferenceType.Report)){	return REF_NOT_APPLICABLE;}
1190
		else if (ref.getType().equals(ReferenceType.Thesis)){	return REF_NOT_APPLICABLE;}
1191
		else if (ref.getType().equals(ReferenceType.Report)){	return REF_NOT_APPLICABLE;}
1192

    
1193
		else {
1194
			//TODO Exception
1195
			logger.warn("Reference type not yet supported in Berlin Model: "+ ref.getClass().getSimpleName());
1196
			return null;
1197
		}
1198
	}
1199

    
1200

    
1201
	public static Integer taxRelation2relPtQualifierFk (RelationshipBase<?,?,?> rel){
1202
		if (rel == null){
1203
			return null;
1204
		}
1205
//		else if (rel instanceof SynonymRelationship){
1206
//			return ;
1207
//		}else if (rel instanceof TaxonRelationship){
1208
			RelationshipTermBase<?> type = rel.getType();
1209
			if (type.equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {return TAX_REL_IS_INCLUDED_IN;
1210
			}else if (type.equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())) {return TAX_REL_IS_MISAPPLIED_NAME_OF;
1211
			}else if (type.equals(TaxonRelationshipType.PRO_PARTE_MISAPPLIED_NAME_FOR())) {return TAX_REL_IS_PRO_PARTE_MISAPPLIED_NAME_OF;
1212
            }else if (type.equals(SynonymType.SYNONYM_OF())) {return TAX_REL_IS_SYNONYM_OF;
1213
			}else if (type.equals(SynonymType.HOMOTYPIC_SYNONYM_OF())) {return TAX_REL_IS_HOMOTYPIC_SYNONYM_OF;
1214
			}else if (type.equals(SynonymType.HETEROTYPIC_SYNONYM_OF())) {return TAX_REL_IS_HETEROTYPIC_SYNONYM_OF;
1215
			}else if (type.equals(TaxonRelationshipType.CONGRUENT_TO())) {return 11;
1216
//			public static int TAX_REL_IS_PROPARTE_SYN_OF = 4;
1217
//			public static int TAX_REL_IS_PARTIAL_SYN_OF = 5;
1218
//			public static int TAX_REL_IS_PROPARTE_HOMOTYPIC_SYNONYM_OF = 101;
1219
//			public static int TAX_REL_IS_PROPARTE_HETEROTYPIC_SYNONYM_OF = 102;
1220
//			public static int TAX_REL_IS_PARTIAL_HOMOTYPIC_SYNONYM_OF = 103;
1221
//			public static int TAX_REL_IS_PARTIAL_HETEROTYPIC_SYNONYM_OF = 104;
1222

    
1223
			}else {
1224
				//TODO Exception
1225
				logger.warn("Relationship type not yet supported by Berlin Model export: "+ rel.getType());
1226
				return null;
1227
		}
1228
	}
1229

    
1230
	public static Integer nomStatus2nomStatusFk (NomenclaturalStatusType status){
1231
		if (status == null){
1232
			return null;
1233
		}
1234
		if (status.equals(NomenclaturalStatusType.INVALID())) {return NAME_ST_NOM_INVAL;
1235
		}else if (status.equals(NomenclaturalStatusType.ILLEGITIMATE())) {return NAME_ST_NOM_ILLEG;
1236
		}else if (status.equals(NomenclaturalStatusType.NUDUM())) {return NAME_ST_NOM_NUD;
1237
		}else if (status.equals(NomenclaturalStatusType.REJECTED())) {return NAME_ST_NOM_REJ;
1238
		}else if (status.equals(NomenclaturalStatusType.REJECTED_PROP())) {return NAME_ST_NOM_REJ_PROP;
1239
		}else if (status.equals(NomenclaturalStatusType.UTIQUE_REJECTED())) {return NAME_ST_NOM_UTIQUE_REJ;
1240
		}else if (status.equals(NomenclaturalStatusType.UTIQUE_REJECTED_PROP())) {return NAME_ST_NOM_UTIQUE_REJ_PROP;
1241
		}else if (status.equals(NomenclaturalStatusType.CONSERVED())) {return NAME_ST_NOM_CONS;
1242

    
1243
		}else if (status.equals(NomenclaturalStatusType.CONSERVED_PROP())) {return NAME_ST_NOM_CONS_PROP;
1244
		}else if (status.equals(NomenclaturalStatusType.ORTHOGRAPHY_CONSERVED())) {return NAME_ST_ORTH_CONS;
1245
		}else if (status.equals(NomenclaturalStatusType.ORTHOGRAPHY_CONSERVED_PROP())) {return NAME_ST_ORTH_CONS_PROP;
1246
		}else if (status.equals(NomenclaturalStatusType.SUPERFLUOUS())) {return NAME_ST_NOM_SUPERFL;
1247
		}else if (status.equals(NomenclaturalStatusType.AMBIGUOUS())) {return NAME_ST_NOM_AMBIG;
1248
		}else if (status.equals(NomenclaturalStatusType.PROVISIONAL())) {return NAME_ST_NOM_PROVIS;
1249
		}else if (status.equals(NomenclaturalStatusType.DOUBTFUL())) {return NAME_ST_NOM_DUB;
1250
		}else if (status.equals(NomenclaturalStatusType.NOVUM())) {return NAME_ST_NOM_NOV;
1251

    
1252
		}else if (status.equals(NomenclaturalStatusType.CONFUSUM())) {return NAME_ST_NOM_CONFUS;
1253
		}else if (status.equals(NomenclaturalStatusType.ALTERNATIVE())) {return NAME_ST_NOM_ALTERN;
1254
		}else if (status.equals(NomenclaturalStatusType.COMBINATION_INVALID())) {return NAME_ST_COMB_INVAL;
1255
		//TODO
1256
		}else {
1257
			//TODO Exception
1258
			logger.warn("NomStatus type not yet supported by Berlin Model export: "+ status);
1259
			return null;
1260
		}
1261
	}
1262

    
1263

    
1264

    
1265
	public static Integer nameRel2RelNameQualifierFk (RelationshipBase<?,?,?> rel){
1266
		if (rel == null){
1267
			return null;
1268
		}
1269
		RelationshipTermBase<?> type = rel.getType();
1270
		if (type.equals(NameRelationshipType.BASIONYM())) {return NAME_REL_IS_BASIONYM_FOR;
1271
		}else if (type.equals(NameRelationshipType.LATER_HOMONYM())) {return NAME_REL_IS_LATER_HOMONYM_OF;
1272
		}else if (type.equals(NameRelationshipType.REPLACED_SYNONYM())) {return NAME_REL_IS_REPLACED_SYNONYM_FOR;
1273
		//TODO
1274
		}else if (type.equals(NameRelationshipType.VALIDATED_BY_NAME())) {return NAME_REL_IS_VALIDATION_OF;
1275
		}else if (type.equals(NameRelationshipType.LATER_VALIDATED_BY_NAME())) {return NAME_REL_IS_LATER_VALIDATION_OF;
1276
		}else if (type.equals(NameRelationshipType.CONSERVED_AGAINST())) {return NAME_REL_IS_CONSERVED_AGAINST;
1277

    
1278

    
1279
		}else if (type.equals(NameRelationshipType.TREATED_AS_LATER_HOMONYM())) {return NAME_REL_IS_TREATED_AS_LATER_HOMONYM_OF;
1280
		}else if (type.equals(NameRelationshipType.ORTHOGRAPHIC_VARIANT())) {return NAME_REL_IS_ORTHOGRAPHIC_VARIANT_OF;
1281
		}else {
1282
			//TODO Exception
1283
			logger.warn("Relationship type not yet supported by Berlin Model export: "+ rel.getType());
1284
			return null;
1285
	}
1286

    
1287
			//NameRelationShip
1288

    
1289
//	}else if (type.equals(NameRelationshipType.())) {return NAME_REL_IS_REJECTED_IN_FAVOUR_OF;
1290

    
1291
//			public static int NAME_REL_IS_FIRST_PARENT_OF = 9;
1292
//			public static int NAME_REL_IS_SECOND_PARENT_OF = 10;
1293
//			public static int NAME_REL_IS_FEMALE_PARENT_OF = 11;
1294
//			public static int NAME_REL_IS_MALE_PARENT_OF = 12;
1295
//
1296
//			public static int NAME_REL_IS_REJECTED_IN_FAVOUR_OF = 14;
1297
//	}else if (type.equals(NameRelationshipType.)) {return NAME_REL_IS_REJECTED_TYPE_OF;
1298
//
1299
//			public static int NAME_REL_HAS_SAME_TYPE_AS = 18;
1300
//			public static int NAME_REL_IS_LECTOTYPE_OF = 61;
1301
//			public static int NAME_REL_TYPE_NOT_DESIGNATED = 62;
1302

    
1303
		//	}else if (type.equals(NameRelationshipType.LATER_VALIDATED_BY_NAME())) {return NAME_REL_IS_TYPE_OF;
1304

    
1305

    
1306
	}
1307

    
1308
	public static UUID getWebMarkerUuid (int markerCategoryId){
1309
		if (markerCategoryId == 1){
1310
			return UUID.fromString("d8554418-d1ae-471d-a1bd-a0cbc7ab860c");  //any as not to find in cichorieae
1311
		}else if (markerCategoryId == 2){
1312
			return UUID.fromString("7f189c48-8632-4870-9ec8-e4d2489f324e");
1313
		}else if (markerCategoryId == 3){
1314
			return UUID.fromString("9a115e6b-8210-4dd3-825a-6fed11016c63");
1315
		}else if (markerCategoryId == 4){
1316
			return UUID.fromString("1d287011-2054-41c5-a919-17ac1d0a9270");
1317
		}else if (markerCategoryId == 9){
1318
			return UUID.fromString("cc5eca5c-1ae5-4feb-9a95-507fc167b0c9");
1319
		//Salvador
1320
		}else if (markerCategoryId == 5){
1321
			return UUID.fromString("7d8875b3-107c-4189-97e5-cadb470e543a");
1322
		}else if (markerCategoryId == 20){
1323
			return UUID.fromString("3574e2b0-6431-4d71-b456-bc967c80f622");
1324
		}else if (markerCategoryId == 30){
1325
			return UUID.fromString("9924b27e-0dbe-4d95-ae9b-096fbbc3edcb");
1326
		}else if (markerCategoryId == 40){
1327
			return UUID.fromString("69241b97-f4d2-4f60-9aed-1c4ccb5bced5");
1328
		}else if (markerCategoryId == 50){
1329
			return UUID.fromString("f3b62ce3-0212-4542-a74c-0c68d08859b1");
1330
		}else if (markerCategoryId == 55){
1331
			return UUID.fromString("bec822f2-8242-425f-ad46-f11f0b82f69b");
1332
		}else if (markerCategoryId == 60){
1333
			return UUID.fromString("722fca60-0416-4bf0-aa4b-a07400f9710d");
1334
		}else if (markerCategoryId == 70){
1335
			return UUID.fromString("ed57857b-1001-4b09-b48e-d88ab146bb2b");
1336
		}else if (markerCategoryId == 80){
1337
			return UUID.fromString("637e8b77-1202-462b-9d77-1023f3c192d9");
1338
		}else if (markerCategoryId == 90){
1339
			return UUID.fromString("c769c231-6e76-46df-88f7-2c459342a3c2");
1340
		}else if (markerCategoryId == 93){
1341
			return UUID.fromString("075ee97e-246f-4f3d-aa96-16930df6268c");
1342
		}else if (markerCategoryId == 100){
1343
			return UUID.fromString("e17065bf-3e44-417a-b05c-f82929f680c3");
1344
		}else if (markerCategoryId == 110){
1345
			return UUID.fromString("e2b8de07-770e-4fda-b445-c4735f4e95c8");
1346
		}else if (markerCategoryId == 900){
1347
			return UUID.fromString("d029c3c9-944a-4bb9-bba6-12c95da94a04");
1348
		}else if (markerCategoryId == 920){
1349
			return UUID.fromString("98af97b1-e5e3-4ee4-902e-15032316bfc3");
1350
		}else if (markerCategoryId == 930){
1351
			return UUID.fromString("4b6c3130-4e50-4f45-8461-d2698cf5f80b");
1352
		}else if (markerCategoryId == 950){
1353
			return UUID.fromString("1e53f58c-6528-42c6-99ae-0f75a3c3c264");
1354
		}else if (markerCategoryId == 960){
1355
			return UUID.fromString("1903d460-94cc-4fc4-b2a8-a3fb0cfd69a0");
1356
		}else{
1357
			logger.warn("Unknown webMarker category: " + markerCategoryId);
1358
			return null;
1359
		}
1360

    
1361
	}
1362

    
1363
}
(1-1/2)