Project

General

Profile

Download (173 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2009 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.cdm.io.pesi.out;
11

    
12
import org.apache.log4j.Logger;
13

    
14
import eu.etaxonomy.cdm.model.common.CdmBase;
15
import eu.etaxonomy.cdm.model.common.Language;
16
import eu.etaxonomy.cdm.model.common.RelationshipBase;
17
import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
18
import eu.etaxonomy.cdm.model.description.AbsenceTerm;
19
import eu.etaxonomy.cdm.model.description.Feature;
20
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
21
import eu.etaxonomy.cdm.model.description.PresenceTerm;
22
import eu.etaxonomy.cdm.model.location.NamedArea;
23
import eu.etaxonomy.cdm.model.location.TdwgArea;
24
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
25
import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
26
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
27
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
28
import eu.etaxonomy.cdm.model.name.Rank;
29
import eu.etaxonomy.cdm.model.occurrence.Fossil;
30
import eu.etaxonomy.cdm.model.reference.ISectionBase;
31
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
32
import eu.etaxonomy.cdm.model.reference.ReferenceType;
33
import eu.etaxonomy.cdm.model.taxon.Synonym;
34
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
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.strategy.exceptions.UnknownCdmTypeException;
39

    
40
/**
41
 * @author a.mueller
42
 * @author e.-m.lee
43
 * @date 16.02.2010
44
 *
45
 */
46
public final class PesiTransformer {
47
	private static final Logger logger = Logger.getLogger(PesiTransformer.class);
48

    
49
	// References
50
	public static int REF_ARTICLE_IN_PERIODICAL = 1;
51
	public static int REF_PART_OF_OTHER = 2;
52
	public static int REF_BOOK = 3;
53
	public static int REF_DATABASE = 4;
54
	public static int REF_INFORMAL = 5;
55
	public static int REF_NOT_APPLICABLE = 6;
56
	public static int REF_WEBSITE = 7;
57
	public static int REF_PUBLISHED = 8;
58
	public static int REF_JOURNAL = 9;
59
	public static int REF_UNRESOLVED = 10;
60
	public static int REF_PUBLICATION = 11;
61

    
62
	public static String REF_STR_ARTICLE_IN_PERIODICAL = "Article in periodical";
63
	public static String REF_STR_PART_OF_OTHER = "Part of other";
64
	public static String REF_STR_BOOK = "Book";
65
	public static String REF_STR_DATABASE = "Database";
66
	public static String REF_STR_INFORMAL = "Informal";
67
	public static String REF_STR_NOT_APPLICABLE = "Not applicable";
68
	public static String REF_STR_WEBSITE = "Website";
69
	public static String REF_STR_PUBLISHED = "Published";
70
	public static String REF_STR_JOURNAL = "Journal";
71
	public static String REF_STR_UNRESOLVED = "Unresolved";
72
	public static String REF_STR_PUBLICATION = "Publication";
73
	
74
	// NameStatus
75
	public static int NAME_ST_NOM_INVAL = 1;
76
	public static int NAME_ST_NOM_ILLEG = 2;
77
	public static int NAME_ST_NOM_NUD = 3;
78
	public static int NAME_ST_NOM_REJ = 4;
79
	public static int NAME_ST_NOM_REJ_PROP = 5;
80
	public static int NAME_ST_NOM_UTIQUE_REJ = 6;
81
	public static int NAME_ST_NOM_UTIQUE_REJ_PROP = 7;
82
	public static int NAME_ST_NOM_CONS = 8;
83
	public static int NAME_ST_NOM_CONS_PROP = 9;
84
	public static int NAME_ST_ORTH_CONS = 10;
85
	public static int NAME_ST_ORTH_CONS_PROP = 11;
86
	public static int NAME_ST_NOM_SUPERFL = 12;
87
	public static int NAME_ST_NOM_AMBIG = 13;
88
	public static int NAME_ST_NOM_PROVIS = 14;
89
	public static int NAME_ST_NOM_DUB = 15;
90
	public static int NAME_ST_NOM_NOV = 16;
91
	public static int NAME_ST_NOM_CONFUS = 17;
92
	public static int NAME_ST_NOM_ALTERN = 18;
93
	public static int NAME_ST_COMB_INVAL = 19;
94
	public static int NAME_ST_LEGITIMATE = 20; // PESI specific from here
95
	public static int NAME_ST_COMB_INED = 21;
96
	public static int NAME_ST_COMB_AND_STAT_INED = 22;
97
	public static int NAME_ST_NOM_AND_ORTH_CONS = 23;
98
	public static int NAME_ST_NOM_NOV_INED = 24;
99
	public static int NAME_ST_SP_NOV_INED = 25;
100
	public static int NAME_ST_ALTERNATE_REPRESENTATION = 26;
101
	public static int NAME_ST_TEMPORARY_NAME = 27;
102
	public static int NAME_ST_SPECIES_INQUIRENDA = 28;
103

    
104
	public static String NAME_ST_STR_NOM_INVAL = "Nom. Inval.";
105
	public static String NAME_ST_STR_NOM_ILLEG = "Nom. Illeg.";
106
	public static String NAME_ST_STR_NOM_NUD = "Nom. Nud.";
107
	public static String NAME_ST_STR_NOM_REJ = "Nom. Rej.";
108
	public static String NAME_ST_STR_NOM_REJ_PROP = "Nom. Rej. Prop.";
109
	public static String NAME_ST_STR_NOM_UTIQUE_REJ = "Nom. Utique Rej.";
110
	public static String NAME_ST_STR_NOM_UTIQUE_REJ_PROP = "Nom. Utique Rej. Prop.";
111
	public static String NAME_ST_STR_NOM_CONS = "Nom. Cons.";
112
	public static String NAME_ST_STR_NOM_CONS_PROP = "Nom. Cons. Prop.";
113
	public static String NAME_ST_STR_ORTH_CONS = "Orth. Cons.";
114
	public static String NAME_ST_STR_ORTH_CONS_PROP = "Orth. Cons. Prop.";
115
	public static String NAME_ST_STR_NOM_SUPERFL = "Nom. Superfl.";
116
	public static String NAME_ST_STR_NOM_AMBIG = "Nom. Ambig.";
117
	public static String NAME_ST_STR_NOM_PROVIS = "Nom. Provis.";
118
	public static String NAME_ST_STR_NOM_DUB = "Nom. Dub.";
119
	public static String NAME_ST_STR_NOM_NOV = "Nom. Nov.";
120
	public static String NAME_ST_STR_NOM_CONFUS = "Nom. Confus.";
121
	public static String NAME_ST_STR_NOM_ALTERN = "Nom. Altern.";
122
	public static String NAME_ST_STR_COMB_INVAL = "Comb. Inval.";
123
	public static String NAME_ST_STR_LEGITIMATE = "Legitim"; 
124
	public static String NAME_ST_STR_COMB_INED = "Comb. Ined."; // PESI specific from here
125
	public static String NAME_ST_STR_COMB_AND_STAT_INED = "Comb. & Stat. Ined.";
126
	public static String NAME_ST_STR_NOM_AND_ORTH_CONS = "Nom. & Orth. Cons.";
127
	public static String NAME_ST_STR_NOM_NOV_INED = "Nom. Nov. Ined.";
128
	public static String NAME_ST_STR_SP_NOV_INED = "Sp. Nov. Ined.";
129
	public static String NAME_ST_STR_ALTERNATE_REPRESENTATION = "Alternate Representation";
130
	public static String NAME_ST_STR_TEMPORARY_NAME = "Temporary Name";
131
	public static String NAME_ST_STR_SPECIES_INQUIRENDA = "Species Inquirenda";
132

    
133
	// TaxonStatus
134
	public static int T_STATUS_ACCEPTED = 1;
135
	public static int T_STATUS_SYNONYM = 2;
136
	public static int T_STATUS_PARTIAL_SYN = 3;
137
	public static int T_STATUS_PRO_PARTE_SYN = 4;
138
	public static int T_STATUS_UNRESOLVED = 5;
139
	public static int T_STATUS_ORPHANED = 6;
140
	
141
	public static String T_STATUS_STR_ACCEPTED = "Accepted";
142
	public static String T_STATUS_STR_SYNONYM = "Synonym";
143
	public static String T_STATUS_STR_PARTIAL_SYN = "Partial Synonym";
144
	public static String T_STATUS_STR_PRO_PARTE_SYN = "Pro Parte Synonym";
145
	public static String T_STATUS_STR_UNRESOLVED = "Unresolved";
146
	public static String T_STATUS_STR_ORPHANED = "Orphaned";
147
	
148
	// TypeDesginationStatus
149
	public static int TYPE_BY_ORIGINAL_DESIGNATION = 1;
150
	public static int TYPE_BY_SUBSEQUENT_DESIGNATION = 2;
151
	public static int TYPE_BY_MONOTYPY = 3;
152
	
153
	public static String TYPE_STR_BY_ORIGINAL_DESIGNATION = "Type by original designation";
154
	public static String TYPE_STR_BY_SUBSEQUENT_DESIGNATION = "Type by subsequent designation";
155
	public static String TYPE_STR_BY_MONOTYPY = "Type by monotypy";
156
	
157
	// RelTaxonQualifier
158
	public static int IS_BASIONYM_FOR = 1;
159
	public static int IS_LATER_HOMONYM_OF = 2;
160
	public static int IS_REPLACED_SYNONYM_FOR = 3;
161
	public static int IS_VALIDATION_OF = 4;
162
	public static int IS_LATER_VALIDATION_OF = 5;
163
	public static int IS_TYPE_OF = 6;
164
	public static int IS_CONSERVED_TYPE_OF = 7;
165
	public static int IS_REJECTED_TYPE_OF = 8;
166
	public static int IS_FIRST_PARENT_OF = 9;
167
	public static int IS_SECOND_PARENT_OF = 10;
168
	public static int IS_FEMALE_PARENT_OF = 11;
169
	public static int IS_MALE_PARENT_OF = 12;
170
	public static int IS_CONSERVED_AGAINST = 13;
171
	public static int IS_REJECTED_IN_FAVOUR_OF = 14;
172
	public static int IS_TREATED_AS_LATER_HOMONYM_OF = 15;
173
	public static int IS_ORTHOGRAPHIC_VARIANT_OF = 16;
174
	public static int IS_ALTERNATIVE_NAME_FOR = 17;
175
	public static int HAS_SAME_TYPE_AS = 18;
176
	public static int IS_LECTOTYPE_OF = 61;
177
	public static int TYPE_NOT_DESIGNATED = 62;
178
	public static int IS_TAXONOMICALLY_INCLUDED_IN = 101;
179
	public static int IS_SYNONYM_OF = 102;
180
	public static int IS_MISAPPLIED_NAME_FOR = 103;
181
	public static int IS_PRO_PARTE_SYNONYM_OF = 104;
182
	public static int IS_PARTIAL_SYNONYM_OF = 105;
183
	public static int IS_HETEROTYPIC_SYNONYM_OF = 106;
184
	public static int IS_HOMOTYPIC_SYNONYM_OF = 107;
185
	public static int IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF = 201;
186
	public static int IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF = 202;
187
	public static int IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF = 203;
188
	public static int IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF = 204;
189
	public static int IS_INFERRED_EPITHET_FOR = 301;
190
	public static int IS_INFERRED_GENUS_FOR = 302;
191
	public static int IS_POTENTIAL_COMBINATION_FOR = 303;
192

    
193
	public static String STR_IS_BASIONYM_FOR = "is basionym for";
194
	public static String STR_IS_LATER_HOMONYM_OF = "is later homonym of";
195
	public static String STR_IS_REPLACED_SYNONYM_FOR = "is replaced synonym for";
196
	public static String STR_IS_VALIDATION_OF = "is validation of";
197
	public static String STR_IS_LATER_VALIDATION_OF = "is later validation of";
198
	public static String STR_IS_TYPE_OF = "is type of";
199
	public static String STR_IS_CONSERVED_TYPE_OF = "is conserved type of";
200
	public static String STR_IS_REJECTED_TYPE_OF = "is rejected type of";
201
	public static String STR_IS_FIRST_PARENT_OF = "is first parent of";
202
	public static String STR_IS_SECOND_PARENT_OF = "is second parent of";
203
	public static String STR_IS_FEMALE_PARENT_OF = "is female parent of";
204
	public static String STR_IS_MALE_PARENT_OF = "is male parent of";
205
	public static String STR_IS_CONSERVED_AGAINST = "is conserved against";
206
	public static String STR_IS_REJECTED_IN_FAVOUR_OF = "is rejected in favour of";
207
	public static String STR_IS_TREATED_AS_LATER_HOMONYM_OF = "is treated as later homonym of";
208
	public static String STR_IS_ORTHOGRAPHIC_VARIANT_OF = "is orthographic variant of";
209
	public static String STR_IS_ALTERNATIVE_NAME_FOR = "is alternative name for";
210
	public static String STR_HAS_SAME_TYPE_AS = "has same type as";
211
	public static String STR_IS_LECTOTYPE_OF = "is lectotype of";
212
	public static String STR_TYPE_NOT_DESIGNATED = "type not designated";
213
	public static String STR_IS_TAXONOMICALLY_INCLUDED_IN  = "is taxonomically included in";
214
	public static String STR_IS_SYNONYM_OF = "is synonym of";
215
	public static String STR_IS_MISAPPLIED_NAME_FOR = "is misapplied name for";
216
	public static String STR_IS_PRO_PARTE_SYNONYM_OF = "is pro parte synonym of";
217
	public static String STR_IS_PARTIAL_SYNONYM_OF = "is partial synonym of";
218
	public static String STR_IS_HETEROTYPIC_SYNONYM_OF = "is heterotypic synonym of";
219
	public static String STR_IS_HOMOTYPIC_SYNONYM_OF = "is homotypic synonym of";
220
	public static String STR_IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF = "is pro parte and homotypic synonym of";
221
	public static String STR_IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF = "is pro parte and heterotypic synonym of";
222
	public static String STR_IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF = "is partial and homotypic synonym of";
223
	public static String STR_IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF = "is partial and heterotypic synonym of";
224
	public static String STR_IS_INFERRED_EPITHET_FOR = "is inferred epithet for";
225
	public static String STR_IS_INFERRED_GENUS_FOR = "is inferred genus for";
226
	public static String STR_IS_POTENTIAL_COMBINATION_FOR = "is potential combination for";
227

    
228
	// Kingdoms
229
	public static int KINGDOM_NULL = 0;
230
	public static int KINGDOM_ANIMALIA = 2;
231
	public static int KINGDOM_PLANTAE = 3;
232
	public static int KINGDOM_FUNGI = 4;
233
	public static int KINGDOM_PROTOZOA = 5;
234
	public static int KINGDOM_BACTERIA = 6;
235
	public static int KINGDOM_CHROMISTA = 7;
236

    
237
	// Animalia Ranks
238
	public static int Animalia_Kingdom = 10;
239
	public static int Animalia_Subkingdom = 20;
240
	public static int Animalia_Superphylum = 23;
241
	public static int Animalia_Phylum = 30;
242
	public static int Animalia_Subphylum = 40;
243
	public static int Animalia_Infraphylum = 45;
244
	public static int Animalia_Superclass = 50;
245
	public static int Animalia_Class = 60;
246
	public static int Animalia_Subclass = 70;
247
	public static int Animalia_Infraclass = 80;
248
	public static int Animalia_Superorder = 90;
249
	public static int Animalia_Order = 100;
250
	public static int Animalia_Suborder = 110;
251
	public static int Animalia_Infraorder = 120;
252
	public static int Animalia_Section = 121;
253
	public static int Animalia_Subsection = 122;
254
	public static int Animalia_Superfamily = 130;
255
	public static int Animalia_Family = 140;
256
	public static int Animalia_Subfamily = 150;
257
	public static int Animalia_Tribe = 160;
258
	public static int Animalia_Subtribe = 170;
259
	public static int Animalia_Genus = 180;
260
	public static int Animalia_Subgenus = 190;
261
	public static int Animalia_Species =220;
262
	public static int Animalia_Subspecies = 230;
263
	public static int Animalia_Natio = 235;
264
	public static int Animalia_Variety = 240;
265
	public static int Animalia_Subvariety = 250;
266
	public static int Animalia_Forma = 260;
267

    
268
	public static String Animalia_STR_Kingdom = "Kingdom";
269
	public static String Animalia_STR_Subkingdom = "Subkingdom";
270
	public static String Animalia_STR_Superphylum = "Superphylum";
271
	public static String Animalia_STR_Phylum = "Phylum";
272
	public static String Animalia_STR_Subphylum = "Subphylum";
273
	public static String Animalia_STR_Infraphylum = "Infraphylum";
274
	public static String Animalia_STR_Superclass = "Superclass";
275
	public static String Animalia_STR_Class = "Class";
276
	public static String Animalia_STR_Subclass = "Subclass";
277
	public static String Animalia_STR_Infraclass = "Infraclass";
278
	public static String Animalia_STR_Superorder = "Superorder";
279
	public static String Animalia_STR_Order = "Order";
280
	public static String Animalia_STR_Suborder = "Suborder";
281
	public static String Animalia_STR_Infraorder = "Infraorder";
282
	public static String Animalia_STR_Section = "Section";
283
	public static String Animalia_STR_Subsection = "Subsection";
284
	public static String Animalia_STR_Superfamily = "Superfamily";
285
	public static String Animalia_STR_Family = "Family";
286
	public static String Animalia_STR_Subfamily = "Subfamily";
287
	public static String Animalia_STR_Tribe = "Tribe";
288
	public static String Animalia_STR_Subtribe = "Subtribe";
289
	public static String Animalia_STR_Genus = "Genus";
290
	public static String Animalia_STR_Subgenus = "Subgenus";
291
	public static String Animalia_STR_Species = "Species";
292
	public static String Animalia_STR_Subspecies = "Subspecies";
293
	public static String Animalia_STR_Natio = "Natio";
294
	public static String Animalia_STR_Variety = "Variety";
295
	public static String Animalia_STR_Subvariety = "Subvariety";
296
	public static String Animalia_STR_Forma = "Forma";
297
	
298
	// Animalia Rank Abbreviations only for used Ranks
299
	public static String Animalia_Abbrev_Subgenus = "subg.";
300
	public static String Animalia_Abbrev_Species = "sp.";
301
	public static String Animalia_Abbrev_Subspecies = "subsp.";
302
	public static String Animalia_Abbrev_Variety = "var.";
303
	public static String Animalia_Abbrev_Subvariety = "subvar.";
304
	public static String Animalia_Abbrev_Forma = "f.";
305

    
306
	// Plantae Ranks
307
	public static int Plantae_Kingdom = 10;
308
	public static int Plantae_Subkingdom = 20;
309
	public static int Plantae_Division = 30;
310
	public static int Plantae_Subdivision = 40;
311
	public static int Plantae_Class = 60;
312
	public static int Plantae_Subclass = 70;
313
	public static int Plantae_Order = 100;
314
	public static int Plantae_Suborder = 110;
315
	public static int Plantae_Family = 140;
316
	public static int Plantae_Subfamily = 150;
317
	public static int Plantae_Tribe	= 160;
318
	public static int Plantae_Subtribe = 170;
319
	public static int Plantae_Genus = 180;
320
	public static int Plantae_Subgenus = 190;
321
	public static int Plantae_Section = 200;
322
	public static int Plantae_Subsection = 210;
323
	public static int Plantae_Series = 212;
324
	public static int Plantae_Subseries	= 214;
325
	public static int Plantae_Aggregate	= 216;
326
	public static int Plantae_Coll_Species = 218;
327
	public static int Plantae_Species = 220;
328
	public static int Plantae_Subspecies = 230;
329
	public static int Plantae_Proles = 232;
330
	public static int Plantae_Race = 234;
331
	public static int Plantae_Convarietas = 236;
332
	public static int Plantae_Variety = 240;
333
	public static int Plantae_Subvariety = 250;
334
	public static int Plantae_Forma	= 260;
335
	public static int Plantae_Subforma = 270;
336
	public static int Plantae_Forma_spec = 275;
337
	public static int Plantae_Taxa_infragen = 280;
338
	public static int Plantae_Taxa_infraspec = 285;
339
	
340
	public static String Plantae_STR_Kingdom = "Kingdom";
341
	public static String Plantae_STR_Subkingdom = "Subkingdom";
342
	public static String Plantae_STR_Division = "Division";
343
	public static String Plantae_STR_Subdivision = "Subdivision";
344
	public static String Plantae_STR_Class = "Class";
345
	public static String Plantae_STR_Subclass = "Subclass";
346
	public static String Plantae_STR_Order = "Order";
347
	public static String Plantae_STR_Suborder = "Suborder";
348
	public static String Plantae_STR_Family = "Family";
349
	public static String Plantae_STR_Subfamily = "Subfamily";
350
	public static String Plantae_STR_Tribe	= "Tribe";
351
	public static String Plantae_STR_Subtribe = "Subtribe";
352
	public static String Plantae_STR_Genus = "Genus";
353
	public static String Plantae_STR_Subgenus = "Subgenus";
354
	public static String Plantae_STR_Section = "Section";
355
	public static String Plantae_STR_Subsection = "Subsection";
356
	public static String Plantae_STR_Series = "Series";
357
	public static String Plantae_STR_Subseries	= "Subseries";
358
	public static String Plantae_STR_Aggregate	= "Aggregate";
359
	public static String Plantae_STR_Coll_Species = "Coll. Species";
360
	public static String Plantae_STR_Species = "Species";
361
	public static String Plantae_STR_Subspecies = "Subspecies";
362
	public static String Plantae_STR_Proles = "Proles";
363
	public static String Plantae_STR_Race = "Race";
364
	public static String Plantae_STR_Convarietas = "Convarietas";
365
	public static String Plantae_STR_Variety = "Variety";
366
	public static String Plantae_STR_Subvariety = "Subvariety";
367
	public static String Plantae_STR_Forma	= "Forma";
368
	public static String Plantae_STR_Subforma = "Subforma";
369
	public static String Plantae_STR_Forma_spec = "Forma spec.";
370
	public static String Plantae_STR_Taxa_infragen = "Taxa infragen.";
371
	public static String Plantae_STR_Taxa_infraspec = "Taxa infraspec.";
372
	
373
	// Plantae Rank Abbreviations
374
	public static String Plantae_Abbrev_Kingdom = "reg.";
375
	public static String Plantae_Abbrev_Subkingdom = "subreg.";
376
	public static String Plantae_Abbrev_Division = "div.";
377
	public static String Plantae_Abbrev_Subdivision = "subdiv.";
378
	public static String Plantae_Abbrev_Class = "cl.";
379
	public static String Plantae_Abbrev_Subclass = "subcl.";
380
	public static String Plantae_Abbrev_Order = "ordo";
381
	public static String Plantae_Abbrev_Suborder = "subor.";
382
	public static String Plantae_Abbrev_Family = "fam.";
383
	public static String Plantae_Abbrev_Subfamily = "subfam.";
384
	public static String Plantae_Abbrev_Tribe	= "trib.";
385
	public static String Plantae_Abbrev_Subtribe = "subtrib.";
386
	public static String Plantae_Abbrev_Genus = "gen.";
387
	public static String Plantae_Abbrev_Subgenus = "subg.";
388
	public static String Plantae_Abbrev_Section = "sect.";
389
	public static String Plantae_Abbrev_Subsection = "subsect.";
390
	public static String Plantae_Abbrev_Series = "ser.";
391
	public static String Plantae_Abbrev_Subseries	= "subser.";
392
	public static String Plantae_Abbrev_Aggregate	= "aggr.";
393
	public static String Plantae_Abbrev_Coll_Species = "coll. sp.";
394
	public static String Plantae_Abbrev_Species = "sp.";
395
	public static String Plantae_Abbrev_Subspecies = "subsp.";
396
	public static String Plantae_Abbrev_Proles = "prol.";
397
	public static String Plantae_Abbrev_Race = "race";
398
	public static String Plantae_Abbrev_Convarietas = "convar.";
399
	public static String Plantae_Abbrev_Variety = "var.";
400
	public static String Plantae_Abbrev_Subvariety = "subvar.";
401
	public static String Plantae_Abbrev_Forma	= "f.";
402
	public static String Plantae_Abbrev_Subforma = "subf.";
403
	public static String Plantae_Abbrev_Forma_spec = "f.spec.";
404
	public static String Plantae_Abbrev_Taxa_infragen = "t.infgen.";
405
	public static String Plantae_Abbrev_Taxa_infraspec = "t.infr.";
406
	
407
	// Fungi Ranks
408
	public static int Fungi_Kingdom = 10;
409
	public static int Fungi_Subkingdom = 20;
410
	public static int Fungi_Division = 30;
411
	public static int Fungi_Subdivision = 40;
412
	public static int Fungi_Class	= 60;
413
	public static int Fungi_Subclass = 70;
414
	public static int Fungi_Order	= 100;
415
	public static int Fungi_Suborder = 110;
416
	public static int Fungi_Family = 140;
417
	public static int Fungi_Subfamily = 150;
418
	public static int Fungi_Tribe = 160;
419
	public static int Fungi_Subtribe = 170;
420
	public static int Fungi_Genus = 180;
421
	public static int Fungi_Subgenus = 190;
422
	public static int Fungi_Section = 200;
423
	public static int Fungi_Subsection = 210;
424
	public static int Fungi_Species = 220;
425
	public static int Fungi_Subspecies = 230;
426
	public static int Fungi_Variety = 240;
427
	public static int Fungi_Subvariety = 250;
428
	public static int Fungi_Forma	= 260;
429
	public static int Fungi_Subforma = 270;
430
	
431
	//Protozoa Ranks
432
	public static int Protozoa_Kingdom = 10;
433
	public static int Protozoa_Subkingdom = 20;
434
	public static int Protozoa_Phylum = 30;
435
	public static int Protozoa_Subphylum = 40;
436
	public static int Protozoa_Superclass = 50;
437
	public static int Protozoa_Class	= 60;
438
	public static int Protozoa_Subclass = 70;
439
	public static int Protozoa_Infraclass = 80;
440
	public static int Protozoa_Superorder = 90;
441
	public static int Protozoa_Order	= 100;
442
	public static int Protozoa_Suborder = 110;
443
	public static int Protozoa_Infraorder = 120;
444
	public static int Protozoa_Superfamily = 130;
445
	public static int Protozoa_Family = 140;
446
	public static int Protozoa_Subfamily = 150;
447
	public static int Protozoa_Tribe	= 160;
448
	public static int Protozoa_Subtribe = 170;
449
	public static int Protozoa_Genus	= 180;
450
	public static int Protozoa_Subgenus = 190;
451
	public static int Protozoa_Species = 220;
452
	public static int Protozoa_Subspecies = 230;
453
	public static int Protozoa_Variety = 240;
454
	public static int Protozoa_Forma	= 260;
455
	
456
	// Bacteria Ranks
457
	public static int Bacteria_Kingdom = 10;
458
	public static int Bacteria_Subkingdom = 20;
459
	public static int Bacteria_Phylum = 30;
460
	public static int Bacteria_Subphylum	= 40;
461
	public static int Bacteria_Superclass = 50;
462
	public static int Bacteria_Class	= 60;
463
	public static int Bacteria_Subclass = 70;
464
	public static int Bacteria_Infraclass = 80;
465
	public static int Bacteria_Superorder = 90;
466
	public static int Bacteria_Order	= 100;
467
	public static int Bacteria_Suborder = 110;
468
	public static int Bacteria_Infraorder = 120;
469
	public static int Bacteria_Superfamily = 130;
470
	public static int Bacteria_Family = 140;
471
	public static int Bacteria_Subfamily	= 150;
472
	public static int Bacteria_Tribe	= 160;
473
	public static int Bacteria_Subtribe = 170;
474
	public static int Bacteria_Genus	= 180;
475
	public static int Bacteria_Subgenus = 190;
476
	public static int Bacteria_Species = 220;
477
	public static int Bacteria_Subspecies = 230;
478
	public static int Bacteria_Variety = 240;
479
	public static int Bacteria_Forma	= 260;
480
	
481
	// Chromista Ranks
482
	public static int Chromista_Kingdom = 10;
483
	public static int Chromista_Subkingdom = 20;
484
	public static int Chromista_Infrakingdom = 25;
485
	public static int Chromista_Phylum = 30;
486
	public static int Chromista_Subphylum = 40;
487
	public static int Chromista_Superclass = 50;
488
	public static int Chromista_Class = 60;
489
	public static int Chromista_Subclass = 70;
490
	public static int Chromista_Infraclass = 80;
491
	public static int Chromista_Superorder = 90;
492
	public static int Chromista_Order = 100;
493
	public static int Chromista_Suborder = 110;
494
	public static int Chromista_Infraorder = 120;
495
	public static int Chromista_Superfamily	= 130;
496
	public static int Chromista_Family = 140;
497
	public static int Chromista_Subfamily = 150;
498
	public static int Chromista_Tribe = 160;
499
	public static int Chromista_Subtribe = 170;
500
	public static int Chromista_Genus = 180;
501
	public static int Chromista_Subgenus = 190;
502
	public static int Chromista_Section = 200;
503
	public static int Chromista_Subsection = 210;
504
	public static int Chromista_Species	= 220;
505
	public static int Chromista_Subspecies = 230;
506
	public static int Chromista_Variety	= 240;
507
	public static int Chromista_Subvariety = 250;
508
	public static int Chromista_Forma = 260;
509
	
510
	// NoteCategory
511
	public static int NoteCategory_description = 1;
512
	public static int NoteCategory_ecology = 4;
513
	public static int NoteCategory_phenology	= 5;
514
	public static int NoteCategory_general_distribution_euromed = 10;
515
	public static int NoteCategory_general_distribution_world = 11;
516
	public static int NoteCategory_Common_names = 12;
517
	public static int NoteCategory_Occurrence = 13;
518
	public static int NoteCategory_Maps =14;
519
	public static int NoteCategory_Link_to_maps = 20;
520
	public static int NoteCategory_Link_to_images = 21;
521
	public static int NoteCategory_Link_to_taxonomy = 22;
522
	public static int NoteCategory_Link_to_general_information = 23;
523
	public static int NoteCategory_undefined_link = 24;
524
	public static int NoteCategory_Editor_Braces = 249;
525
	public static int NoteCategory_Editor_Brackets = 250;
526
	public static int NoteCategory_Editor_Parenthesis = 251;
527
	public static int NoteCategory_Inedited = 252;
528
	public static int NoteCategory_Comments_on_editing_process = 253;
529
	public static int NoteCategory_Publication_date = 254;
530
	public static int NoteCategory_Morphology = 255;
531
	public static int NoteCategory_Acknowledgments = 257;
532
	public static int NoteCategory_Original_publication = 258;
533
	public static int NoteCategory_Type_locality	= 259;
534
	public static int NoteCategory_Environment = 260;
535
	public static int NoteCategory_Spelling = 261;
536
	public static int NoteCategory_Systematics = 262;
537
	public static int NoteCategory_Remark = 263;
538
	public static int NoteCategory_Date_of_publication = 264;
539
	public static int NoteCategory_Additional_information = 266;
540
	public static int NoteCategory_Status = 267;
541
	public static int NoteCategory_Nomenclature = 268;
542
	public static int NoteCategory_Homonymy = 269;
543
	public static int NoteCategory_Taxonomy = 270;
544
	public static int NoteCategory_Taxonomic_status = 272;
545
	public static int NoteCategory_Authority	= 273;
546
	public static int NoteCategory_Identification = 274;
547
	public static int NoteCategory_Validity = 275;
548
	public static int NoteCategory_Classification = 276;
549
	public static int NoteCategory_Distribution = 278;
550
	public static int NoteCategory_Synonymy = 279;
551
	public static int NoteCategory_Habitat = 280;
552
	public static int NoteCategory_Biology = 281;
553
	public static int NoteCategory_Diagnosis	= 282;
554
	public static int NoteCategory_Host = 283;
555
	public static int NoteCategory_Note = 284;
556
	public static int NoteCategory_Rank = 285;
557
	public static int NoteCategory_Taxonomic_Remark = 286;
558
	public static int NoteCategory_Taxonomic_Remarks = 287;
559

    
560
	
561
	public static String NoteCategory_STR_description = "description";
562
	public static String NoteCategory_STR_ecology = "ecology";
563
	public static String NoteCategory_STR_phenology	= "phenology";
564
	public static String NoteCategory_STR_general_distribution_euromed = "general distribution (Euro+Med)";
565
	public static String NoteCategory_STR_general_distribution_world = "general distribution (world)";
566
	public static String NoteCategory_STR_Common_names = "Common names";
567
	public static String NoteCategory_STR_Occurrence = "Occurrence";
568
	public static String NoteCategory_STR_Maps = "Maps";
569
	public static String NoteCategory_STR_Link_to_maps = "Link to maps";
570
	public static String NoteCategory_STR_Link_to_images = "Link to images";
571
	public static String NoteCategory_STR_Link_to_taxonomy = "Link to taxonomy";
572
	public static String NoteCategory_STR_Link_to_general_information = "Link to general information";
573
	public static String NoteCategory_STR_undefined_link = "undefined link";
574
	public static String NoteCategory_STR_Editor_Braces = "Editor_Braces";
575
	public static String NoteCategory_STR_Editor_Brackets = "Editor_Brackets";
576
	public static String NoteCategory_STR_Editor_Parenthesis = "Editor_Parenthesis";
577
	public static String NoteCategory_STR_Inedited = "Inedited";
578
	public static String NoteCategory_STR_Comments_on_editing_process = "Comments on editing process";
579
	public static String NoteCategory_STR_Publication_date = "Publication date";
580
	public static String NoteCategory_STR_Morphology = "Morphology";
581
	public static String NoteCategory_STR_Acknowledgments = "Acknowledgments";
582
	public static String NoteCategory_STR_Original_publication = "Original publication";
583
	public static String NoteCategory_STR_Type_locality	= "Type locality";
584
	public static String NoteCategory_STR_Environment = "Environment";
585
	public static String NoteCategory_STR_Spelling = "Spelling";
586
	public static String NoteCategory_STR_Systematics = "Systematics";
587
	public static String NoteCategory_STR_Remark = "Remark";
588
	public static String NoteCategory_STR_Date_of_publication = "Date of publication";
589
	public static String NoteCategory_STR_Additional_information = "Additional information";
590
	public static String NoteCategory_STR_Status = "Status";
591
	public static String NoteCategory_STR_Nomenclature = "Nomenclature";
592
	public static String NoteCategory_STR_Homonymy = "Homonymy";
593
	public static String NoteCategory_STR_Taxonomy = "Taxonomy";
594
	public static String NoteCategory_STR_Taxonomic_status = "Taxonomic status";
595
	public static String NoteCategory_STR_Authority	= "Authority";
596
	public static String NoteCategory_STR_Identification = "Identification";
597
	public static String NoteCategory_STR_Validity = "Validity";
598
	public static String NoteCategory_STR_Classification = "Classification";
599
	public static String NoteCategory_STR_Distribution = "Distribution";
600
	public static String NoteCategory_STR_Synonymy = "Synonymy";
601
	public static String NoteCategory_STR_Habitat = "Habitat";
602
	public static String NoteCategory_STR_Biology = "Biology";
603
	public static String NoteCategory_STR_Diagnosis	= "Diagnosis";
604
	public static String NoteCategory_STR_Host = "Host";
605
	public static String NoteCategory_STR_Note = "Note";
606
	public static String NoteCategory_STR_Rank = "Rank";
607
	public static String NoteCategory_STR_Taxonomic_Remark = "Taxonomic Remark";
608
	public static String NoteCategory_STR_Taxonomic_Remarks = "Taxonomic Remarks";
609
	
610
	
611
	// Language
612
	public static int Language_Albanian = 1;
613
	public static int Language_Arabic = 2;
614
	public static int Language_Armenian = 3;
615
	public static int Language_Azerbaijan = 4;
616
	public static int Language_Belarusian = 5;
617
	public static int Language_Bulgarian = 6;
618
	public static int Language_Catalan = 7;
619
	public static int Language_Croat = 8;
620
	public static int Language_Czech = 9;
621
	public static int Language_Danish = 10;
622
	public static int Language_Dutch = 11;
623
	public static int Language_English = 12;
624
	public static int Language_Euskera = 13;
625
	public static int Language_Estonian = 14;
626
	public static int Language_Finnish = 15;
627
	public static int Language_French = 16;
628
	public static int Language_Georgian = 17;
629
	public static int Language_German = 18;
630
	public static int Language_Greek = 19;
631
	public static int Language_Hungarian = 20;
632
	public static int Language_Icelandic = 21;
633
	public static int Language_Irish_Gaelic = 22;
634
	public static int Language_Israel_Hebrew = 23;
635
	public static int Language_Italian = 24;
636
	public static int Language_Latvian = 25;
637
	public static int Language_Lithuanian = 26;
638
	public static int Language_Macedonian = 27;
639
	public static int Language_Maltese = 28;
640
	public static int Language_Moldovian = 29;
641
	public static int Language_Norwegian = 30;
642
	public static int Language_Polish = 31;
643
	public static int Language_Portuguese = 32;
644
	public static int Language_Roumanian = 33;
645
	public static int Language_Russian = 34;
646
	public static int Language_Russian_Caucasian = 35;
647
	public static int Language_Russian_Altaic_kalmyk_oirat = 36;
648
	public static int Language_Russian_Altaic_karachay_balkar = 37;
649
	public static int Language_Russian_Altaic_kumyk = 38;
650
	public static int Language_Russian_Altaic_nogai = 39;
651
	public static int Language_Russian_Altaic_north_azerbaijani = 40;
652
	public static int Language_Russian_Indo_european_russian = 41;
653
	public static int Language_Russian_Indo_european_kalmyk_oirat = 42;
654
	public static int Language_Russian_Indo_european_osetin = 43;
655
	public static int Language_Russian_North_caucasian_abaza = 44;
656
	public static int Language_Russian_North_caucasian_adyghe = 45;
657
	public static int Language_Russian_North_caucasian_chechen = 46;
658
	public static int Language_Russian_North_caucasian_kabardian = 47;
659
	public static int Language_Russian_North_caucasian_lak = 48;
660
	public static int Language_Russian_North_caucasian_avar = 49;
661
	public static int Language_Russian_North_caucasian_in = 50;
662
	public static int Language_Russian_Uralic_chuvash = 51;
663
	public static int Language_Russian_Uralic_udmurt = 52;
664
	public static int Language_Serbian = 53;
665
	public static int Language_Slovak = 54;
666
	public static int Language_Slovene = 55;
667
	public static int Language_Spanish_Castillian = 56;
668
	public static int Language_Swedish = 57;
669
	public static int Language_Turkish = 58;
670
	public static int Language_Ukraine = 59;
671
	public static int Language_Welsh = 60;
672
	public static int Language_Corsican = 61;
673

    
674
	public static String STR_LANGUAGE_ALBANIAN = "Albanian";
675
	public static String STR_LANGUAGE_ARABIC = "Arabic";
676
	public static String STR_LANGUAGE_ARMENIAN = "Armenian";
677
	public static String STR_LANGUAGE_AZERBAIJAN = "Azerbaijan";
678
	public static String STR_LANGUAGE_BELARUSIAN = "Belarusian";
679
	public static String STR_LANGUAGE_BULGARIAN = "Bulgarian";
680
	public static String STR_LANGUAGE_CATALAN = "Catalan";
681
	public static String STR_LANGUAGE_CROAT = "Croat";
682
	public static String STR_LANGUAGE_CZECH = "Czech";
683
	public static String STR_LANGUAGE_DANISH = "Danish";
684
	public static String STR_LANGUAGE_DUTCH = "Dutch";
685
	public static String STR_LANGUAGE_ENGLISH = "English";
686
	public static String STR_LANGUAGE_EUSKERA = "Euskera";
687
	public static String STR_LANGUAGE_ESTONIAN = "Estonian";
688
	public static String STR_LANGUAGE_FINNISH = "Finnish";
689
	public static String STR_LANGUAGE_FRENCH = "French";
690
	public static String STR_LANGUAGE_GEORGIAN = "Georgian";
691
	public static String STR_LANGUAGE_GERMAN = "German";
692
	public static String STR_LANGUAGE_GREEK = "Greek";
693
	public static String STR_LANGUAGE_HUNGARIAN = "Hungarian";
694
	public static String STR_LANGUAGE_ICELANDIC = "Icelandic";
695
	public static String STR_LANGUAGE_IRISH_GAELIC = "Irish Gaelic";
696
	public static String STR_LANGUAGE_ISRAEL_HEBREW = "Israel (Hebrew)";
697
	public static String STR_LANGUAGE_ITALIAN = "Italian";
698
	public static String STR_LANGUAGE_LATVIAN = "Latvian";
699
	public static String STR_LANGUAGE_LITHUANIAN = "Lithuanian";
700
	public static String STR_LANGUAGE_MACEDONIAN = "Macedonian";
701
	public static String STR_LANGUAGE_MALTESE = "Maltese";
702
	public static String STR_LANGUAGE_MOLDOVIAN = "Moldovian";
703
	public static String STR_LANGUAGE_NORWEGIAN = "Norwegian";
704
	public static String STR_LANGUAGE_POLISH = "Polish";
705
	public static String STR_LANGUAGE_PORTUGUESE = "Portuguese";
706
	public static String STR_LANGUAGE_ROUMANIAN = "Roumanian";
707
	public static String STR_LANGUAGE_RUSSIAN = "Russian";
708
	public static String STR_LANGUAGE_RUSSIAN_CAUCASIAN = "Russian Caucasian";
709
	public static String STR_LANGUAGE_RUSSIAN_ALTAIC_KALMYK_OIRAT = "Russian (Altaic, kalmyk-oirat)";
710
	public static String STR_LANGUAGE_RUSSIAN_ALTAIC_KARACHAY_BALKAR = "Russian (Altaic, karachay-balkar)";
711
	public static String STR_LANGUAGE_RUSSIAN_ALTAIC_KUMYK = "Russian (Altaic, kumyk)";
712
	public static String STR_LANGUAGE_RUSSIAN_ALTAIC_NOGAI = "Russian (Altaic, nogai)";
713
	public static String STR_LANGUAGE_RUSSIAN_ALTAIC_NORTH_AZERBAIJANI = "Russian (Altaic, north azerbaijani)";
714
	public static String STR_LANGUAGE_RUSSIAN_INDO_EUROPEAN_RUSSIAN = "Russian (Indo-european, russian)";
715
	public static String STR_LANGUAGE_RUSSIAN_INDO_EUROPEAN_KALMYK_OIRAT = "Russian (Indo-european, kalmyk-oirat)";
716
	public static String STR_LANGUAGE_RUSSIAN_INDO_EUROPEAN_OSETIN = "Russian (Indo-european, osetin)";
717
	public static String STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_ABAZA = "Russian (North caucasian, abaza)";
718
	public static String STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_ADYGHE = "Russian (North caucasian, adyghe)";
719
	public static String STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_CHECHEN = "Russian (North caucasian, chechen)";
720
	public static String STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_KABARDIAN = "Russian (North caucasian, kabardian)";
721
	public static String STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_LAK = "Russian (North caucasian, lak)";
722
	public static String STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_AVAR = "Russian (North caucasian, avar)";
723
	public static String STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_IN = "Russian (North caucasian, in)";
724
	public static String STR_LANGUAGE_RUSSIAN_URALIC_CHUVASH = "Russian (Uralic, chuvash)";
725
	public static String STR_LANGUAGE_RUSSIAN_URALIC_UDMURT = "Russian (Uralic, udmurt)";
726
	public static String STR_LANGUAGE_SERBIAN = "Serbian";
727
	public static String STR_LANGUAGE_SLOVAK = "Slovak";
728
	public static String STR_LANGUAGE_SLOVENE = "Slovene";
729
	public static String STR_LANGUAGE_SPANISH_CASTILLIAN = "Spanish, Castillian";
730
	public static String STR_LANGUAGE_SWEDISH = "Swedish";
731
	public static String STR_LANGUAGE_TURKISH = "Turkish";
732
	public static String STR_LANGUAGE_UKRAINE = "Ukraine";
733
	public static String STR_LANGUAGE_WELSH = "Welsh";
734
	public static String STR_LANGUAGE_CORSICAN = "Corsican";
735

    
736
	
737
	// FossilStatus
738
	public static int FOSSILSTATUS_RECENT_ONLY = 1;
739
	public static int FOSSILSTATUS_FOSSIL_ONLY = 2;
740
	public static int FOSSILSTATUS_RECENT_FOSSIL = 3;
741
	
742
	public static String STR_RECENT_ONLY = "recent only";
743
	public static String STR_FOSSIL_ONLY = "fossil only";
744
	public static String STR_RECENT_FOSSIL = "recent + fossil";
745

    
746
	// SourceUse
747
	public static int ORIGINAL_DESCRIPTION = 1;
748
	public static int BASIS_OF_RECORD = 2;
749
	public static int ADDITIONAL_SOURCE = 3;
750
	public static int SOURCE_OF_SYNONYMY = 4;
751
	public static int REDESCRIPTION = 5;
752
	public static int NEW_COMBINATION_REFERENCE = 6;
753
	public static int STATUS_SOURCE = 7;
754
	public static int NOMENCLATURAL_REFERENCE = 8;
755
	
756
	public static String STR_ORIGINAL_DESCRIPTION = "original description";
757
	public static String STR_BASIS_OF_RECORD = "basis of record";
758
	public static String STR_ADDITIONAL_SOURCE = "additional source";
759
	public static String STR_SOURCE_OF_SYNONYMY = "source of synonymy";
760
	public static String STR_REDESCRIPTION = "redescription";
761
	public static String STR_NEW_COMBINATION_REFERENCE = "new combination reference";
762
	public static String STR_STATUS_SOURCE = "status source";
763
	public static String STR_NOMENCLATURAL_REFERENCE = "nomenclatural reference";
764

    
765
	// Area
766
	public static int AREA_EAST_AEGEAN_ISLANDS = 1;
767
	public static int AREA_GREEK_EAST_AEGEAN_ISLANDS = 2;
768
	public static int AREA_TURKISH_EAST_AEGEAN_ISLANDS = 3;
769
	public static int AREA_ALBANIA = 4;
770
	public static int AREA_AUSTRIA_WITH_LIECHTENSTEIN = 5;
771
	public static int AREA_AUSTRIA = 6;
772
	public static int AREA_LIECHTENSTEIN = 7;
773
	public static int AREA_AZORES = 8;
774
	public static int AREA_CORVO = 9;
775
	public static int AREA_FAIAL = 10;
776
	public static int AREA_GRACIOSA = 11;
777
	public static int AREA_SAO_JORGE = 12;
778
	public static int AREA_FLORES = 13;
779
	public static int AREA_SAO_MIGUEL = 14;
780
	public static int AREA_PICO = 15;
781
	public static int AREA_SANTA_MARIA = 16;
782
	public static int AREA_TERCEIRA = 17;
783
	public static int AREA_BELGIUM_WITH_LUXEMBOURG = 18;
784
	public static int AREA_BELGIUM = 19;
785
	public static int AREA_LUXEMBOURG = 20;
786
	public static int AREA_BOSNIA_HERZEGOVINA = 21;
787
	public static int AREA_BALEARES = 22;
788
	public static int AREA_IBIZA_WITH_FORMENTERA = 23;
789
	public static int AREA_MALLORCA = 24;
790
	public static int AREA_MENORCA = 25;
791
	public static int AREA_GREAT_BRITAIN = 26;
792
	public static int AREA_BALTIC_STATES_ESTONIA_LATVIA_LITHUANIA_AND_KALININGRAD_REGION = 27;
793
	public static int AREA_BULGARIA = 28;
794
	public static int AREA_BELARUS = 29;
795
	public static int AREA_CANARY_ISLANDS = 30;
796
	public static int AREA_GRAN_CANARIA = 31;
797
	public static int AREA_FUERTEVENTURA_WITH_LOBOS = 32;
798
	public static int AREA_GOMERA = 33;
799
	public static int AREA_HIERRO = 34;
800
	public static int AREA_LANZAROTE_WITH_GRACIOSA = 35;
801
	public static int AREA_LA_PALMA = 36;
802
	public static int AREA_TENERIFE = 37;
803
	public static int AREA_MONTENEGRO = 38;
804
	public static int AREA_CORSE = 39;
805
	public static int AREA_CRETE_WITH_KARPATHOS_KASOS_AND_GAVDHOS = 40;
806
	public static int AREA_CZECH_REPUBLIC = 41;
807
	public static int AREA_CROATIA = 42;
808
	public static int AREA_CYPRUS = 43;
809
	public static int AREA_FORMER_CZECHOSLOVAKIA = 44;
810
	public static int AREA_DENMARK_WITH_BORNHOLM = 45;
811
	public static int AREA_ESTONIA = 46;
812
	public static int AREA_FAROE_ISLANDS = 47;
813
	public static int AREA_FINLAND_WITH_AHVENANMAA = 48;
814
	public static int AREA_FRANCE = 49;
815
	public static int AREA_CHANNEL_ISLANDS = 50;
816
	public static int AREA_FRENCH_MAINLAND = 51;
817
	public static int AREA_MONACO = 52;
818
	public static int AREA_GERMANY = 53;
819
	public static int AREA_GREECE_WITH_CYCLADES_AND_MORE_ISLANDS = 54;
820
	public static int AREA_IRELAND = 55;
821
	public static int AREA_REPUBLIC_OF_IRELAND = 56;
822
	public static int AREA_NORTHERN_IRELAND = 57;
823
	public static int AREA_SWITZERLAND = 58;
824
	public static int AREA_NETHERLANDS = 59;
825
	public static int AREA_SPAIN = 60;
826
	public static int AREA_ANDORRA = 61;
827
	public static int AREA_GIBRALTAR = 62;
828
	public static int AREA_KINGDOM_OF_SPAIN = 63;
829
	public static int AREA_HUNGARY = 64;
830
	public static int AREA_ICELAND = 65;
831
	public static int AREA_ITALY = 66;
832
	public static int AREA_ITALIAN_MAINLAND = 67;
833
	public static int AREA_SAN_MARINO = 68;
834
	public static int AREA_FORMER_JUGOSLAVIA = 69;
835
	public static int AREA_LATVIA = 70;
836
	public static int AREA_LITHUANIA = 71;
837
	public static int AREA_PORTUGUESE_MAINLAND = 72;
838
	public static int AREA_MADEIRA_ARCHIPELAGO = 73;
839
	public static int AREA_DESERTAS = 74;
840
	public static int AREA_MADEIRA = 75;
841
	public static int AREA_PORTO_SANTO = 76;
842
	public static int AREA_THE_FORMER_JUGOSLAV_REPUBLIC_OF_MAKEDONIJA = 77;
843
	public static int AREA_MOLDOVA = 78;
844
	public static int AREA_NORWEGIAN_MAINLAND = 79;
845
	public static int AREA_POLAND = 80;
846
	public static int AREA_THE_RUSSIAN_FEDERATION = 81;
847
	public static int AREA_NOVAYA_ZEMLYA_AND_FRANZ_JOSEPH_LAND = 82;
848
	public static int AREA_CENTRAL_EUROPEAN_RUSSIA = 83;
849
	public static int AREA_EASTERN_EUROPEAN_RUSSIA = 84;
850
	public static int AREA_KALININGRAD = 85;
851
	public static int AREA_NORTHERN_EUROPEAN_RUSSIA = 86;
852
	public static int AREA_NORTHWEST_EUROPEAN_RUSSIA = 87;
853
	public static int AREA_SOUTH_EUROPEAN_RUSSIA = 88;
854
	public static int AREA_ROMANIA = 89;
855
	public static int AREA_FORMER_USSR = 90;
856
	public static int AREA_RUSSIA_BALTIC = 91;
857
	public static int AREA_RUSSIA_CENTRAL = 92;
858
	public static int AREA_RUSSIA_SOUTHEAST = 93;
859
	public static int AREA_RUSSIA_NORTHERN = 94;
860
	public static int AREA_RUSSIA_SOUTHWEST = 95;
861
	public static int AREA_SARDEGNA = 96;
862
	public static int AREA_SVALBARD_WITH_BJORNOYA_AND_JAN_MAYEN = 97;
863
	public static int AREA_SELVAGENS_ISLANDS = 98;
864
	public static int AREA_SICILY_WITH_MALTA = 99;
865
	public static int AREA_MALTA = 100;
866
	public static int AREA_SICILY = 101;
867
	public static int AREA_SLOVAKIA = 102;
868
	public static int AREA_SLOVENIA = 103;
869
	public static int AREA_SERBIA_WITH_MONTENEGRO = 104;
870
	public static int AREA_SERBIA_INCLUDING_VOJVODINA_AND_WITH_KOSOVO = 105;
871
	public static int AREA_SWEDEN = 106;
872
	public static int AREA_EUROPEAN_TURKEY = 107;
873
	public static int AREA_UKRAINE_INCLUDING_CRIMEA = 108;
874
	public static int AREA_CRIMEA = 109;
875
	public static int AREA_UKRAINE = 110;
876
	public static int AREA_GREEK_MAINLAND = 111;
877
	public static int AREA_CRETE = 112;
878
	public static int AREA_DODECANESE_ISLANDS = 113;
879
	public static int AREA_CYCLADES_ISLANDS = 114;
880
	public static int AREA_NORTH_AEGEAN_ISLANDS = 115;
881
	public static int AREA_VATICAN_CITY = 116;
882
	public static int AREA_FRANZ_JOSEF_LAND = 117;
883
	public static int AREA_NOVAYA_ZEMLYA = 118;
884
	public static int AREA_AZERBAIJAN_INCLUDING_NAKHICHEVAN = 119;
885
	public static int AREA_AZERBAIJAN = 120;
886
	public static int AREA_NAKHICHEVAN = 121;
887
	public static int AREA_ALGERIA = 122;
888
	public static int AREA_ARMENIA = 123;
889
	public static int AREA_CAUCASUS_REGION = 124;
890
	public static int AREA_EGYPT = 125;
891
	public static int AREA_GEORGIA = 126;
892
	public static int AREA_ISRAEL_JORDAN = 127;
893
	public static int AREA_ISRAEL = 128;
894
	public static int AREA_JORDAN = 129;
895
	public static int AREA_LEBANON = 130;
896
	public static int AREA_LIBYA = 131;
897
	public static int AREA_LEBANON_SYRIA = 132;
898
	public static int AREA_MOROCCO = 133;
899
	public static int AREA_NORTH_CAUCASUS = 134;
900
	public static int AREA_SINAI = 135;
901
	public static int AREA_SYRIA = 136;
902
	public static int AREA_TUNISIA = 137;
903
	public static int AREA_ASIATIC_TURKEY = 138;
904
	public static int AREA_TURKEY = 139;
905
	public static int AREA_NORTHERN_AFRICA = 140;
906
	public static int AREA_AFRO_TROPICAL_REGION = 141;
907
	public static int AREA_AUSTRALIAN_REGION = 142;
908
	public static int AREA_EAST_PALAEARCTIC = 143;
909
	public static int AREA_NEARCTIC_REGION = 144;
910
	public static int AREA_NEOTROPICAL_REGION = 145;
911
	public static int AREA_NEAR_EAST = 146;
912
	public static int AREA_ORIENTAL_REGION = 147;
913
	public static int AREA_EUROPEAN_MARINE_WATERS = 148;
914
	public static int AREA_MEDITERRANEAN_SEA = 149;
915
	public static int AREA_WHITE_SEA = 150;
916
	public static int AREA_NORTH_SEA = 151;
917
	public static int AREA_BALTIC_SEA = 152;
918
	public static int AREA_BLACK_SEA = 153;
919
	public static int AREA_BARENTS_SEA = 154;
920
	public static int AREA_CASPIAN_SEA = 155;
921
	public static int AREA_PORTUGUESE_EXCLUSIVE_ECONOMIC_ZONE = 156;
922
	public static int AREA_BELGIAN_EXCLUSIVE_ECONOMIC_ZONE = 157;
923
	public static int AREA_FRENCH_EXCLUSIVE_ECONOMIC_ZONE = 158;
924
	public static int AREA_ENGLISH_CHANNEL = 159;
925
	public static int AREA_ADRIATIC_SEA = 160;
926
	public static int AREA_BISCAY_BAY = 161;
927
	public static int AREA_DUTCH_EXCLUSIVE_ECONOMIC_ZONE = 162;
928
	public static int AREA_UNITED_KINGDOM_EXCLUSIVE_ECONOMIC_ZONE = 163;
929
	public static int AREA_SPANISH_EXCLUSIVE_ECONOMIC_ZONE = 164;
930
	public static int AREA_EGYPTIAN_EXCLUSIVE_ECONOMIC_ZONE = 165;
931
	public static int AREA_GRECIAN_EXCLUSIVE_ECONOMIC_ZONE = 166;
932
	public static int AREA_TIRRENO_SEA = 167;
933
	public static int AREA_ICELANDIC_EXCLUSIVE_ECONOMIC_ZONE = 168;
934
	public static int AREA_IRISH_EXCLUSIVE_ECONOMIC_ZONE = 169;
935
	public static int AREA_IRISH_SEA = 170;
936
	public static int AREA_ITALIAN_EXCLUSIVE_ECONOMIC_ZONE = 171;
937
	public static int AREA_NORWEGIAN_SEA = 172;
938
	public static int AREA_MOROCCAN_EXCLUSIVE_ECONOMIC_ZONE = 173;
939
	public static int AREA_NORWEGIAN_EXCLUSIVE_ECONOMIC_ZONE = 174;
940
	public static int AREA_SKAGERRAK = 175;
941
	public static int AREA_TUNISIAN_EXCLUSIVE_ECONOMIC_ZONE = 176;
942
	public static int AREA_WADDEN_SEA = 177;
943
	public static int AREA_BELT_SEA = 178;
944
	public static int AREA_MARMARA_SEA = 179;
945
	public static int AREA_SEA_OF_AZOV = 180;
946
	public static int AREA_AEGEAN_SEA = 181;
947
	public static int AREA_BULGARIAN_EXCLUSIVE_ECONOMIC_ZONE = 182;
948
	public static int AREA_SOUTH_BALTIC_PROPER = 183;
949
	public static int AREA_BALTIC_PROPER = 184;
950
	public static int AREA_NORTH_BALTIC_PROPER = 185;
951
	public static int AREA_ARCHIPELAGO_SEA = 186;
952
	public static int AREA_BOTHNIAN_SEA = 187;
953
	public static int AREA_GERMAN_EXCLUSIVE_ECONOMIC_ZONE = 188;
954
	public static int AREA_SWEDISH_EXCLUSIVE_ECONOMIC_ZONE = 189;
955
	public static int AREA_UKRAINIAN_EXCLUSIVE_ECONOMIC_ZONE = 190;
956
	public static int AREA_MADEIRAN_EXCLUSIVE_ECONOMIC_ZONE = 191;
957
	public static int AREA_LEBANESE_EXCLUSIVE_ECONOMIC_ZONE = 192;
958
	public static int AREA_SPANISH_EXCLUSIVE_ECONOMIC_ZONE_MEDITERRANEAN_PART = 193;
959
	public static int AREA_ESTONIAN_EXCLUSIVE_ECONOMIC_ZONE = 194;
960
	public static int AREA_CROATIAN_EXCLUSIVE_ECONOMIC_ZONE = 195;
961
	public static int AREA_BALEAR_SEA = 196;
962
	public static int AREA_TURKISH_EXCLUSIVE_ECONOMIC_ZONE = 197;
963
	public static int AREA_DANISH_EXCLUSIVE_ECONOMIC_ZONE = 198;
964

    
965

    
966
	public static String STR_AREA_EAST_AEGEAN_ISLANDS = "East Aegean Islands";
967
	public static String STR_AREA_GREEK_EAST_AEGEAN_ISLANDS = "Greek East Aegean Islands";
968
	public static String STR_AREA_TURKISH_EAST_AEGEAN_ISLANDS = "Turkish East Aegean Islands";
969
	public static String STR_AREA_ALBANIA = "Albania";
970
	public static String STR_AREA_AUSTRIA_WITH_LIECHTENSTEIN = "Austria with Liechtenstein";
971
	public static String STR_AREA_AUSTRIA = "Austria";
972
	public static String STR_AREA_LIECHTENSTEIN = "Liechtenstein";
973
	public static String STR_AREA_AZORES = "Azores";
974
	public static String STR_AREA_CORVO = "Corvo";
975
	public static String STR_AREA_FAIAL = "Faial";
976
	public static String STR_AREA_GRACIOSA = "Graciosa";
977
	public static String STR_AREA_SAO_JORGE = "S?o Jorge";
978
	public static String STR_AREA_FLORES = "Flores";
979
	public static String STR_AREA_SAO_MIGUEL = "S?o Miguel";
980
	public static String STR_AREA_PICO = "Pico";
981
	public static String STR_AREA_SANTA_MARIA = "Santa Maria";
982
	public static String STR_AREA_TERCEIRA = "Terceira";
983
	public static String STR_AREA_BELGIUM_WITH_LUXEMBOURG = "Belgium with Luxembourg";
984
	public static String STR_AREA_BELGIUM = "Belgium";
985
	public static String STR_AREA_LUXEMBOURG = "Luxembourg";
986
	public static String STR_AREA_BOSNIA_HERZEGOVINA = "Bosnia-Herzegovina";
987
	public static String STR_AREA_BALEARES = "Baleares";
988
	public static String STR_AREA_IBIZA_WITH_FORMENTERA = "Ibiza with Formentera";
989
	public static String STR_AREA_MALLORCA = "Mallorca";
990
	public static String STR_AREA_MENORCA = "Menorca";
991
	public static String STR_AREA_GREAT_BRITAIN = "Great Britain";
992
	public static String STR_AREA_BALTIC_STATES_ESTONIA_LATVIA_LITHUANIA_AND_KALININGRAD_REGION = "Baltic states (Estonia, Latvia, Lithuania) and Kaliningrad region";
993
	public static String STR_AREA_BULGARIA = "Bulgaria";
994
	public static String STR_AREA_BELARUS = "Belarus";
995
	public static String STR_AREA_CANARY_ISLANDS = "Canary Islands";
996
	public static String STR_AREA_GRAN_CANARIA = "Gran Canaria";
997
	public static String STR_AREA_FUERTEVENTURA_WITH_LOBOS = "Fuerteventura with Lobos";
998
	public static String STR_AREA_GOMERA = "Gomera";
999
	public static String STR_AREA_HIERRO = "Hierro";
1000
	public static String STR_AREA_LANZAROTE_WITH_GRACIOSA = "Lanzarote with Graciosa";
1001
	public static String STR_AREA_LA_PALMA = "La Palma";
1002
	public static String STR_AREA_TENERIFE = "Tenerife";
1003
	public static String STR_AREA_MONTENEGRO = "Montenegro";
1004
	public static String STR_AREA_CORSE = "Corse";
1005
	public static String STR_AREA_CRETE_WITH_KARPATHOS_KASOS_AND_GAVDHOS = "Crete with Karpathos, Kasos & Gavdhos";
1006
	public static String STR_AREA_CZECH_REPUBLIC = "Czech Republic";
1007
	public static String STR_AREA_CROATIA = "Croatia";
1008
	public static String STR_AREA_CYPRUS = "Cyprus";
1009
	public static String STR_AREA_FORMER_CZECHOSLOVAKIA = "Former Czechoslovakia";
1010
	public static String STR_AREA_DENMARK_WITH_BORNHOLM = "Denmark with Bornholm";
1011
	public static String STR_AREA_ESTONIA = "Estonia";
1012
	public static String STR_AREA_FAROE_ISLANDS = "Faroe Islands";
1013
	public static String STR_AREA_FINLAND_WITH_AHVENANMAA = "Finland with Ahvenanmaa";
1014
	public static String STR_AREA_FRANCE = "France";
1015
	public static String STR_AREA_CHANNEL_ISLANDS = "Channel Islands";
1016
	public static String STR_AREA_FRENCH_MAINLAND = "French mainland";
1017
	public static String STR_AREA_MONACO = "Monaco";
1018
	public static String STR_AREA_GERMANY = "Germany";
1019
	public static String STR_AREA_GREECE_WITH_CYCLADES_AND_MORE_ISLANDS = "Greece with Cyclades and more islands";
1020
	public static String STR_AREA_IRELAND = "Ireland";
1021
	public static String STR_AREA_REPUBLIC_OF_IRELAND = "Republic of Ireland";
1022
	public static String STR_AREA_NORTHERN_IRELAND = "Northern Ireland";
1023
	public static String STR_AREA_SWITZERLAND = "Switzerland";
1024
	public static String STR_AREA_NETHERLANDS = "Netherlands";
1025
	public static String STR_AREA_SPAIN = "Spain";
1026
	public static String STR_AREA_ANDORRA = "Andorra";
1027
	public static String STR_AREA_GIBRALTAR = "Gibraltar";
1028
	public static String STR_AREA_KINGDOM_OF_SPAIN = "Kingdom of Spain";
1029
	public static String STR_AREA_HUNGARY = "Hungary";
1030
	public static String STR_AREA_ICELAND = "Iceland";
1031
	public static String STR_AREA_ITALY = "Italy";
1032
	public static String STR_AREA_ITALIAN_MAINLAND = "Italian mainland";
1033
	public static String STR_AREA_SAN_MARINO = "San Marino";
1034
	public static String STR_AREA_FORMER_JUGOSLAVIA = "Former Jugoslavia";
1035
	public static String STR_AREA_LATVIA = "Latvia";
1036
	public static String STR_AREA_LITHUANIA = "Lithuania";
1037
	public static String STR_AREA_PORTUGUESE_MAINLAND = "Portuguese mainland";
1038
	public static String STR_AREA_MADEIRA_ARCHIPELAGO = "Madeira";
1039
	public static String STR_AREA_DESERTAS = "Desertas";
1040
	public static String STR_AREA_MADEIRA = "Madeira";
1041
	public static String STR_AREA_PORTO_SANTO = "Porto Santo";
1042
	public static String STR_AREA_THE_FORMER_JUGOSLAV_REPUBLIC_OF_MAKEDONIJA = "The former Jugoslav Republic of Makedonija";
1043
	public static String STR_AREA_MOLDOVA = "Moldova";
1044
	public static String STR_AREA_NORWEGIAN_MAINLAND = "Norwegian mainland";
1045
	public static String STR_AREA_POLAND = "Poland";
1046
	public static String STR_AREA_THE_RUSSIAN_FEDERATION = "The Russian Federation";
1047
	public static String STR_AREA_NOVAYA_ZEMLYA_AND_FRANZ_JOSEPH_LAND = "Novaya Zemlya & Franz-Joseph Land";
1048
	public static String STR_AREA_CENTRAL_EUROPEAN_RUSSIA = "Central European Russia";
1049
	public static String STR_AREA_EASTERN_EUROPEAN_RUSSIA = "Eastern European Russia";
1050
	public static String STR_AREA_KALININGRAD = "Kaliningrad";
1051
	public static String STR_AREA_NORTHERN_EUROPEAN_RUSSIA = "Northern European Russia";
1052
	public static String STR_AREA_NORTHWEST_EUROPEAN_RUSSIA = "Northwest European Russia";
1053
	public static String STR_AREA_SOUTH_EUROPEAN_RUSSIA = "South European Russia";
1054
	public static String STR_AREA_ROMANIA = "Romania";
1055
	public static String STR_AREA_FORMER_USSR = "Former USSR";
1056
	public static String STR_AREA_RUSSIA_BALTIC = "Russia Baltic";
1057
	public static String STR_AREA_RUSSIA_CENTRAL = "Russia Central";
1058
	public static String STR_AREA_RUSSIA_SOUTHEAST = "Russia Southeast";
1059
	public static String STR_AREA_RUSSIA_NORTHERN = "Russia Northern";
1060
	public static String STR_AREA_RUSSIA_SOUTHWEST = "Russia Southwest";
1061
	public static String STR_AREA_SARDEGNA = "Sardegna";
1062
	public static String STR_AREA_SVALBARD_WITH_BJORNOYA_AND_JAN_MAYEN = "Svalbard with Bj?rn?ya and Jan Mayen";
1063
	public static String STR_AREA_SELVAGENS_ISLANDS = "Selvagens Islands";
1064
	public static String STR_AREA_SICILY_WITH_MALTA = "Sicily with Malta";
1065
	public static String STR_AREA_MALTA = "Malta";
1066
	public static String STR_AREA_SICILY = "Sicily";
1067
	public static String STR_AREA_SLOVAKIA = "Slovakia";
1068
	public static String STR_AREA_SLOVENIA = "Slovenia";
1069
	public static String STR_AREA_SERBIA_WITH_MONTENEGRO = "Serbia with Montenegro";
1070
	public static String STR_AREA_SERBIA_INCLUDING_VOJVODINA_AND_WITH_KOSOVO = "Serbia including Vojvodina and with Kosovo";
1071
	public static String STR_AREA_SWEDEN = "Sweden";
1072
	public static String STR_AREA_EUROPEAN_TURKEY = "European Turkey";
1073
	public static String STR_AREA_UKRAINE_INCLUDING_CRIMEA = "Ukraine including Crimea";
1074
	public static String STR_AREA_CRIMEA = "Crimea";
1075
	public static String STR_AREA_UKRAINE = "Ukraine";
1076
	public static String STR_AREA_GREEK_MAINLAND = "Greek mainland";
1077
	public static String STR_AREA_CRETE = "Crete";
1078
	public static String STR_AREA_DODECANESE_ISLANDS = "Dodecanese Islands";
1079
	public static String STR_AREA_CYCLADES_ISLANDS = "Cyclades Islands";
1080
	public static String STR_AREA_NORTH_AEGEAN_ISLANDS = "North Aegean Islands";
1081
	public static String STR_AREA_VATICAN_CITY = "Vatican City";
1082
	public static String STR_AREA_FRANZ_JOSEF_LAND = "Franz Josef Land";
1083
	public static String STR_AREA_NOVAYA_ZEMLYA = "Novaya Zemlya";
1084
	public static String STR_AREA_AZERBAIJAN_INCLUDING_NAKHICHEVAN = "Azerbaijan including Nakhichevan";
1085
	public static String STR_AREA_AZERBAIJAN = "Azerbaijan";
1086
	public static String STR_AREA_NAKHICHEVAN = "Nakhichevan";
1087
	public static String STR_AREA_ALGERIA = "Algeria";
1088
	public static String STR_AREA_ARMENIA = "Armenia";
1089
	public static String STR_AREA_CAUCASUS_REGION = "Caucasus region";
1090
	public static String STR_AREA_EGYPT = "Egypt";
1091
	public static String STR_AREA_GEORGIA = "Georgia";
1092
	public static String STR_AREA_ISRAEL_JORDAN = "Israel-Jordan";
1093
	public static String STR_AREA_ISRAEL = "Israel";
1094
	public static String STR_AREA_JORDAN = "Jordan";
1095
	public static String STR_AREA_LEBANON = "Lebanon";
1096
	public static String STR_AREA_LIBYA = "Libya";
1097
	public static String STR_AREA_LEBANON_SYRIA = "Lebanon-Syria";
1098
	public static String STR_AREA_MOROCCO = "Morocco";
1099
	public static String STR_AREA_NORTH_CAUCASUS = "North Caucasus";
1100
	public static String STR_AREA_SINAI = "Sinai";
1101
	public static String STR_AREA_SYRIA = "Syria";
1102
	public static String STR_AREA_TUNISIA = "Tunisia";
1103
	public static String STR_AREA_ASIATIC_TURKEY = "Asiatic Turkey";
1104
	public static String STR_AREA_TURKEY = "Turkey";
1105
	public static String STR_AREA_NORTHERN_AFRICA = "Northern Africa";
1106
	public static String STR_AREA_AFRO_TROPICAL_REGION = "Afro-tropical region";
1107
	public static String STR_AREA_AUSTRALIAN_REGION = "Australian region";
1108
	public static String STR_AREA_EAST_PALAEARCTIC = "East Palaearctic";
1109
	public static String STR_AREA_NEARCTIC_REGION = "Nearctic region";
1110
	public static String STR_AREA_NEOTROPICAL_REGION = "Neotropical region";
1111
	public static String STR_AREA_NEAR_EAST = "Near East";
1112
	public static String STR_AREA_ORIENTAL_REGION = "Oriental region";
1113
	public static String STR_AREA_EUROPEAN_MARINE_WATERS = "European Marine Waters";
1114
	public static String STR_AREA_MEDITERRANEAN_SEA = "Mediterranean Sea";
1115
	public static String STR_AREA_WHITE_SEA = "White Sea";
1116
	public static String STR_AREA_NORTH_SEA = "North Sea";
1117
	public static String STR_AREA_BALTIC_SEA = "Baltic Sea";
1118
	public static String STR_AREA_BLACK_SEA = "Black Sea";
1119
	public static String STR_AREA_BARENTS_SEA = "Barents Sea";
1120
	public static String STR_AREA_CASPIAN_SEA = "Caspian Sea";
1121
	public static String STR_AREA_PORTUGUESE_EXCLUSIVE_ECONOMIC_ZONE = "Portuguese Exclusive Economic Zone";
1122
	public static String STR_AREA_BELGIAN_EXCLUSIVE_ECONOMIC_ZONE = "Belgian Exclusive Economic Zone";
1123
	public static String STR_AREA_FRENCH_EXCLUSIVE_ECONOMIC_ZONE = "French Exclusive Economic Zone";
1124
	public static String STR_AREA_ENGLISH_CHANNEL = "English Channel";
1125
	public static String STR_AREA_ADRIATIC_SEA = "Adriatic Sea";
1126
	public static String STR_AREA_BISCAY_BAY = "Biscay Bay";
1127
	public static String STR_AREA_DUTCH_EXCLUSIVE_ECONOMIC_ZONE = "Dutch Exclusive Economic Zone";
1128
	public static String STR_AREA_UNITED_KINGDOM_EXCLUSIVE_ECONOMIC_ZONE = "United Kingdom Exclusive Economic Zone";
1129
	public static String STR_AREA_SPANISH_EXCLUSIVE_ECONOMIC_ZONE = "Spanish Exclusive Economic Zone";
1130
	public static String STR_AREA_EGYPTIAN_EXCLUSIVE_ECONOMIC_ZONE = "Egyptian Exclusive Economic Zone";
1131
	public static String STR_AREA_GRECIAN_EXCLUSIVE_ECONOMIC_ZONE = "Grecian Exclusive Economic Zone";
1132
	public static String STR_AREA_TIRRENO_SEA = "Tirreno Sea";
1133
	public static String STR_AREA_ICELANDIC_EXCLUSIVE_ECONOMIC_ZONE = "Icelandic Exclusive Economic Zone";
1134
	public static String STR_AREA_IRISH_EXCLUSIVE_ECONOMIC_ZONE = "Irish Exclusive economic Zone";
1135
	public static String STR_AREA_IRISH_SEA = "Irish Sea";
1136
	public static String STR_AREA_ITALIAN_EXCLUSIVE_ECONOMIC_ZONE = "Italian Exclusive Economic Zone";
1137
	public static String STR_AREA_NORWEGIAN_SEA = "Norwegian Sea";
1138
	public static String STR_AREA_MOROCCAN_EXCLUSIVE_ECONOMIC_ZONE = "Moroccan Exclusive Economic Zone";
1139
	public static String STR_AREA_NORWEGIAN_EXCLUSIVE_ECONOMIC_ZONE = "Norwegian Exclusive Economic Zone";
1140
	public static String STR_AREA_SKAGERRAK = "Skagerrak";
1141
	public static String STR_AREA_TUNISIAN_EXCLUSIVE_ECONOMIC_ZONE = "Tunisian Exclusive Economic Zone";
1142
	public static String STR_AREA_WADDEN_SEA = "Wadden Sea";
1143
	public static String STR_AREA_BELT_SEA = "Belt Sea";
1144
	public static String STR_AREA_MARMARA_SEA = "Marmara Sea";
1145
	public static String STR_AREA_SEA_OF_AZOV = "Sea of Azov";
1146
	public static String STR_AREA_AEGEAN_SEA = "Aegean Sea";
1147
	public static String STR_AREA_BULGARIAN_EXCLUSIVE_ECONOMIC_ZONE = "Bulgarian Exclusive Economic Zone";
1148
	public static String STR_AREA_SOUTH_BALTIC_PROPER = "South Baltic proper";
1149
	public static String STR_AREA_BALTIC_PROPER = "Baltic Proper";
1150
	public static String STR_AREA_NORTH_BALTIC_PROPER = "North Baltic proper";
1151
	public static String STR_AREA_ARCHIPELAGO_SEA = "Archipelago Sea";
1152
	public static String STR_AREA_BOTHNIAN_SEA = "Bothnian Sea";
1153
	public static String STR_AREA_GERMAN_EXCLUSIVE_ECONOMIC_ZONE = "German Exclusive Economic Zone";
1154
	public static String STR_AREA_SWEDISH_EXCLUSIVE_ECONOMIC_ZONE = "Swedish Exclusive Economic Zone";
1155
	public static String STR_AREA_UKRAINIAN_EXCLUSIVE_ECONOMIC_ZONE = "Ukrainian Exclusive Economic Zone";
1156
	public static String STR_AREA_MADEIRAN_EXCLUSIVE_ECONOMIC_ZONE = "Madeiran Exclusive Economic Zone";
1157
	public static String STR_AREA_LEBANESE_EXCLUSIVE_ECONOMIC_ZONE = "Lebanese Exclusive Economic Zone";
1158
	public static String STR_AREA_SPANISH_EXCLUSIVE_ECONOMIC_ZONE_MEDITERRANEAN_PART = "Spanish Exclusive Economic Zone [Mediterranean part]";
1159
	public static String STR_AREA_ESTONIAN_EXCLUSIVE_ECONOMIC_ZONE = "Estonian Exclusive Economic Zone";
1160
	public static String STR_AREA_CROATIAN_EXCLUSIVE_ECONOMIC_ZONE = "Croatian Exclusive Economic Zone";
1161
	public static String STR_AREA_BALEAR_SEA = "Balear Sea";
1162
	public static String STR_AREA_TURKISH_EXCLUSIVE_ECONOMIC_ZONE = "Turkish Exclusive Economic Zone";
1163
	public static String STR_AREA_DANISH_EXCLUSIVE_ECONOMIC_ZONE = "Danish Exclusive Economic Zone";
1164

    
1165

    
1166
	
1167
	// OccurrenceStatus
1168
	public static int STATUS_PRESENT = 1;
1169
	public static int STATUS_ABSENT = 2;
1170
	public static int STATUS_NATIVE = 3;
1171
	public static int STATUS_INTRODUCED = 4;
1172
	public static int STATUS_NATURALISED = 5;
1173
	public static int STATUS_INVASIVE = 6;
1174
	public static int STATUS_MANAGED = 7;
1175
	public static int STATUS_DOUBTFUL = 8;
1176

    
1177
	public static String STR_STATUS_PRESENT = "Present";
1178
	public static String STR_STATUS_ABSENT = "Absent";
1179
	public static String STR_STATUS_NATIVE = "Native";
1180
	public static String STR_STATUS_INTRODUCED = "Introduced";
1181
	public static String STR_STATUS_NATURALISED = "Naturalised";
1182
	public static String STR_STATUS_INVASIVE = "Invasive";
1183
	public static String STR_STATUS_MANAGED = "Managed";
1184
	public static String STR_STATUS_DOUBTFUL = "Doubtful";
1185

    
1186

    
1187
	/**
1188
	 * Converts the databaseString to its abbreviation if its known.
1189
	 * Otherwise the databaseString is returned.
1190
	 * @param databaseString
1191
	 * @return
1192
	 */
1193
	public static String databaseString2Abbreviation(String databaseString) {
1194
		String result = databaseString;
1195
		if (databaseString.equals("Fauna Europaea database")) {
1196
			result = "FaEu";
1197
		}
1198
		return result;
1199
	}
1200
	
1201
	/**
1202
	 * Returns the OccurrenceStatusCache for a given PresenceAbsenceTerm.
1203
	 * @param term
1204
	 * @return
1205
	 * @throws UnknownCdmTypeException 
1206
	 */
1207
	public static String presenceAbsenceTerm2OccurrenceStatusCache(PresenceAbsenceTermBase<?> term) {
1208
		String result = STR_STATUS_PRESENT; // TODO: What should be returned if a PresenceTerm/AbsenceTerm could not be translated to a datawarehouse occurrence status id?
1209
		if (term.isInstanceOf(PresenceTerm.class)) {
1210
			PresenceTerm presenceTerm = CdmBase.deproxy(term, PresenceTerm.class);
1211
			if (presenceTerm.equals(PresenceTerm.PRESENT())) {
1212
				result = STR_STATUS_PRESENT;
1213
			} else if (presenceTerm.equals(PresenceTerm.NATIVE())) {
1214
				result = STR_STATUS_NATIVE;
1215
			} else if (presenceTerm.equals(PresenceTerm.INTRODUCED())) {
1216
				result = STR_STATUS_INTRODUCED;
1217
			} else if (presenceTerm.equals(PresenceTerm.NATURALISED())) {
1218
				result = STR_STATUS_NATURALISED;
1219
			} else if (presenceTerm.equals(PresenceTerm.INVASIVE())) {
1220
				result = STR_STATUS_INVASIVE;
1221
			} else if (presenceTerm.equals(PresenceTerm.INTRODUCED_CULTIVATED())) {
1222
				result = STR_STATUS_MANAGED;
1223
			} else if (presenceTerm.equals(PresenceTerm.PRESENT_DOUBTFULLY())) {
1224
				result = STR_STATUS_DOUBTFUL;
1225
			} else {
1226
				logger.error("PresenceTerm could not be translated to datawarehouse occurrence status id: " + presenceTerm.getLabel());
1227
			}
1228
		} else if (term.isInstanceOf(AbsenceTerm.class)) {
1229
			AbsenceTerm absenceTerm = CdmBase.deproxy(term, AbsenceTerm.class);
1230
			if (absenceTerm.equals(AbsenceTerm.ABSENT())) {
1231
				result = STR_STATUS_ABSENT;
1232
			} else {
1233
				logger.error("AbsenceTerm could not be translated to datawarehouse occurrence status id: " + absenceTerm.getLabel());
1234
			}
1235
//			result = STR_STATUS_ABSENT; // or just like this?
1236
		}
1237
		return result;
1238
	}
1239

    
1240
	/**
1241
	 * Returns the OccurrenceStatusId for a given PresenceAbsenceTerm.
1242
	 * @param term
1243
	 * @return
1244
	 * @throws UnknownCdmTypeException 
1245
	 */
1246
	public static Integer presenceAbsenceTerm2OccurrenceStatusId(PresenceAbsenceTermBase<?> term) {
1247
		Integer result = STATUS_PRESENT; // TODO: What should be returned if a PresenceTerm/AbsenceTerm could not be translated to a datawarehouse occurrence status id?
1248
		if (term.isInstanceOf(PresenceTerm.class)) {
1249
			PresenceTerm presenceTerm = CdmBase.deproxy(term, PresenceTerm.class);
1250
			if (presenceTerm.equals(PresenceTerm.PRESENT())) {
1251
				result = STATUS_PRESENT;
1252
			} else if (presenceTerm.equals(PresenceTerm.NATIVE())) {
1253
				result = STATUS_NATIVE;
1254
			} else if (presenceTerm.equals(PresenceTerm.INTRODUCED())) {
1255
				result = STATUS_INTRODUCED;
1256
			} else if (presenceTerm.equals(PresenceTerm.NATURALISED())) {
1257
				result = STATUS_NATURALISED;
1258
			} else if (presenceTerm.equals(PresenceTerm.INVASIVE())) {
1259
				result = STATUS_INVASIVE;
1260
			} else if (presenceTerm.equals(PresenceTerm.CULTIVATED())) {
1261
				result = STATUS_MANAGED;
1262
			} else if (presenceTerm.equals(PresenceTerm.PRESENT_DOUBTFULLY())) {
1263
				result = STATUS_DOUBTFUL;
1264
			} else {
1265
				logger.error("PresenceTerm could not be translated to datawarehouse occurrence status id: " + presenceTerm.getLabel());
1266
			}
1267
		} else if (term.isInstanceOf(AbsenceTerm.class)) {
1268
			AbsenceTerm absenceTerm = CdmBase.deproxy(term, AbsenceTerm.class);
1269
			if (absenceTerm.equals(AbsenceTerm.ABSENT())) {
1270
				result = STATUS_ABSENT;
1271
			} else {
1272
				logger.error("AbsenceTerm could not be translated to datawarehouse occurrence status id: " + absenceTerm.getLabel());
1273
			}
1274
//			result = STATUS_ABSENT; // or just like this?
1275
		}
1276
		return result;
1277
	}
1278
	
1279
	/**
1280
	 * Returns the AreaCache for a given Area.
1281
	 * @param area
1282
	 * @return
1283
	 */
1284
	public static String area2AreaCache(NamedArea area) {
1285
		if (area == null) {
1286
			return null;
1287
		} else if (area.isInstanceOf(TdwgArea.class)) {
1288
			TdwgArea tdwgArea = CdmBase.deproxy(area, TdwgArea.class);
1289

    
1290
			// TODO: Areas identified by the string "TODO" (for now) have to be identified correctly after additions have been made to the list of TdwgArea's
1291
			if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_EAST_AEGEAN_ISLANDS; }
1292
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("EAI-OO")) { return STR_AREA_GREEK_EAST_AEGEAN_ISLANDS; }
1293
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_TURKISH_EAST_AEGEAN_ISLANDS; }
1294
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ALB-OO")) { return STR_AREA_ALBANIA; }
1295
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("AUT")) { return STR_AREA_AUSTRIA_WITH_LIECHTENSTEIN; }
1296
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("AUT-AU")) { return STR_AREA_AUSTRIA; }
1297
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("AUT-LI")) { return STR_AREA_LIECHTENSTEIN; }
1298
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("AZO-OO")) { return STR_AREA_AZORES; }
1299
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_CORVO; }
1300
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_FAIAL; }
1301
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_GRACIOSA; }
1302
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SAO_JORGE; }
1303
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_FLORES; }
1304
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SAO_MIGUEL; }
1305
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_PICO; }
1306
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SANTA_MARIA; }
1307
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_TERCEIRA; }
1308
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BGM")) { return STR_AREA_BELGIUM_WITH_LUXEMBOURG; }
1309
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BGM-BE")) { return STR_AREA_BELGIUM; }
1310
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BGM-LU")) { return STR_AREA_LUXEMBOURG; }
1311
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-BH")) { return STR_AREA_BOSNIA_HERZEGOVINA; }
1312
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BAL-OO")) { return STR_AREA_BALEARES; }
1313
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_IBIZA_WITH_FORMENTERA; }
1314
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_MALLORCA; }
1315
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_MENORCA; }
1316
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("GRB-OO")) { return STR_AREA_GREAT_BRITAIN; }
1317
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT")) { return STR_AREA_BALTIC_STATES_ESTONIA_LATVIA_LITHUANIA_AND_KALININGRAD_REGION; }
1318
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BUL-OO")) { return STR_AREA_BULGARIA; }
1319
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLR-OO")) { return STR_AREA_BELARUS; }
1320
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CNY-OO")) { return STR_AREA_CANARY_ISLANDS; }
1321
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_GRAN_CANARIA; }
1322
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_FUERTEVENTURA_WITH_LOBOS; }
1323
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_GOMERA; }
1324
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_HIERRO; }
1325
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_LANZAROTE_WITH_GRACIOSA; }
1326
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_LA_PALMA; }
1327
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_TENERIFE; }
1328
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-MN")) { return STR_AREA_MONTENEGRO; }
1329
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("COR-OO")) { return STR_AREA_CORSE; }
1330
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("KRI-OO")) { return STR_AREA_CRETE_WITH_KARPATHOS_KASOS_AND_GAVDHOS; }
1331
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CZE-CZ")) { return STR_AREA_CZECH_REPUBLIC; }
1332
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-CR")) { return STR_AREA_CROATIA; }
1333
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CYP-OO")) { return STR_AREA_CYPRUS; }
1334
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CZE")) { return STR_AREA_FORMER_CZECHOSLOVAKIA; }
1335
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("DEN-OO")) { return STR_AREA_DENMARK_WITH_BORNHOLM; }
1336
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-ES")) { return STR_AREA_ESTONIA; }
1337
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FOR-OO")) { return STR_AREA_FAROE_ISLANDS; }
1338
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FIN-OO")) { return STR_AREA_FINLAND_WITH_AHVENANMAA; }
1339
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FRA")) { return STR_AREA_FRANCE; }
1340
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FRA-CI")) { return STR_AREA_CHANNEL_ISLANDS; }
1341
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FRA-FR")) { return STR_AREA_FRENCH_MAINLAND; }
1342
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FRA-MO")) { return STR_AREA_MONACO; }
1343
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("GER-OO")) { return STR_AREA_GERMANY; }
1344
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("GRC-OO")) { return STR_AREA_GREECE_WITH_CYCLADES_AND_MORE_ISLANDS; }
1345
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("IRE")) { return STR_AREA_IRELAND; }
1346
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("IRE-IR")) { return STR_AREA_REPUBLIC_OF_IRELAND; }
1347
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("IRE-NI")) { return STR_AREA_NORTHERN_IRELAND; }
1348
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SWI-OO")) { return STR_AREA_SWITZERLAND; }
1349
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NET-OO")) { return STR_AREA_NETHERLANDS; }
1350
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SPA")) { return STR_AREA_SPAIN; }
1351
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SPA-AN")) { return STR_AREA_ANDORRA; }
1352
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SPA-GI")) { return STR_AREA_GIBRALTAR; }
1353
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SPA-SP")) { return STR_AREA_KINGDOM_OF_SPAIN; }
1354
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("HUN-OO")) { return STR_AREA_HUNGARY; }
1355
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ICE-OO")) { return STR_AREA_ICELAND; }
1356
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ITA")) { return STR_AREA_ITALY; }
1357
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ITA-IT")) { return STR_AREA_ITALIAN_MAINLAND; }
1358
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ITA-SM")) { return STR_AREA_SAN_MARINO; }
1359
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG")) { return STR_AREA_FORMER_JUGOSLAVIA; }
1360
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-LA")) { return STR_AREA_LATVIA; }
1361
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-LI")) { return STR_AREA_LITHUANIA; }
1362
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("POR-OO")) { return STR_AREA_PORTUGUESE_MAINLAND; }
1363
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR-OO")) { return STR_AREA_MADEIRA; }
1364
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_DESERTAS; }
1365
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_MADEIRA; }
1366
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_PORTO_SANTO; }
1367
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-MA")) { return STR_AREA_THE_FORMER_JUGOSLAV_REPUBLIC_OF_MAKEDONIJA; }
1368
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("OKR-MO")) { return STR_AREA_MOLDOVA; }
1369
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NOR-OO")) { return STR_AREA_NORWEGIAN_MAINLAND; }
1370
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("POL-OO")) { return STR_AREA_POLAND; }
1371
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_THE_RUSSIAN_FEDERATION; }
1372
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("WSB-OO")) { return STR_AREA_NOVAYA_ZEMLYA_AND_FRANZ_JOSEPH_LAND; }
1373
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUC-OO")) { return STR_AREA_CENTRAL_EUROPEAN_RUSSIA; }
1374
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUE-OO")) { return STR_AREA_EASTERN_EUROPEAN_RUSSIA; }
1375
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-KA")) { return STR_AREA_KALININGRAD; }
1376
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUN-OO")) { return STR_AREA_NORTHERN_EUROPEAN_RUSSIA; }
1377
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUW-OO")) { return STR_AREA_NORTHWEST_EUROPEAN_RUSSIA; }
1378
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUS-OO")) { return STR_AREA_SOUTH_EUROPEAN_RUSSIA; }
1379
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ROM-OO")) { return STR_AREA_ROMANIA; }
1380
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_FORMER_USSR; }
1381
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_RUSSIA_BALTIC; }
1382
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_RUSSIA_CENTRAL; }
1383
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_RUSSIA_SOUTHEAST; }
1384
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_RUSSIA_NORTHERN; }
1385
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_RUSSIA_SOUTHWEST; }
1386
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SAR-OO")) { return STR_AREA_SARDEGNA; }
1387
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SVA-OO")) { return STR_AREA_SVALBARD_WITH_BJORNOYA_AND_JAN_MAYEN; }
1388
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SEL-OO")) { return STR_AREA_SELVAGENS_ISLANDS; }
1389
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SIC")) { return STR_AREA_SICILY_WITH_MALTA; }
1390
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SIC-MA")) { return STR_AREA_MALTA; }
1391
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SIC-SI")) { return STR_AREA_SICILY; }
1392
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CZE-SK")) { return STR_AREA_SLOVAKIA; }
1393
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-SL")) { return STR_AREA_SLOVENIA; }
1394
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SERBIA_WITH_MONTENEGRO; }
1395
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-SE")) { return STR_AREA_SERBIA_INCLUDING_VOJVODINA_AND_WITH_KOSOVO; }
1396
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SWE-OO")) { return STR_AREA_SWEDEN; }
1397
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUE-OO")) { return STR_AREA_EUROPEAN_TURKEY; }
1398
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_UKRAINE_INCLUDING_CRIMEA; }
1399
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("KRY-OO")) { return STR_AREA_CRIMEA; }
1400
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("UKR-UK")) { return STR_AREA_UKRAINE; }
1401
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_GREEK_MAINLAND; }
1402
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_CRETE; }
1403
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_DODECANESE_ISLANDS; }
1404
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_CYCLADES_ISLANDS; }
1405
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NORTH_AEGEAN_ISLANDS; }
1406
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_VATICAN_CITY; }
1407
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_FRANZ_JOSEF_LAND; }
1408
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NOVAYA_ZEMLYA; }
1409
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_AZERBAIJAN_INCLUDING_NAKHICHEVAN; }
1410
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TCS-AZ")) { return STR_AREA_AZERBAIJAN; }
1411
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TCS-NA")) { return STR_AREA_NAKHICHEVAN; }
1412
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ALG-OO")) { return STR_AREA_ALGERIA; }
1413
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_ARMENIA; }
1414
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_CAUCASUS_REGION; }
1415
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("EGY-OO")) { return STR_AREA_EGYPT; }
1416
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_GEORGIA; }
1417
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("PAL")) { return STR_AREA_ISRAEL_JORDAN; }
1418
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("PAL-IS")) { return STR_AREA_ISRAEL; }
1419
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("PAL-JO")) { return STR_AREA_JORDAN; }
1420
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("LBS-LB")) { return STR_AREA_LEBANON; }
1421
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("LBY-OO")) { return STR_AREA_LIBYA; }
1422
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("LBS")) { return STR_AREA_LEBANON_SYRIA; }
1423
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MOR")) { return STR_AREA_MOROCCO; }
1424
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NCS")) { return STR_AREA_NORTH_CAUCASUS; }
1425
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SIN-OO")) { return STR_AREA_SINAI; }
1426
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("LBS-SY")) { return STR_AREA_SYRIA; }
1427
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUN-OO")) { return STR_AREA_TUNISIA; }
1428
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUR-OO")) { return STR_AREA_ASIATIC_TURKEY; }
1429
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_TURKEY; }
1430
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NORTHERN_AFRICA; }
1431
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_AFRO_TROPICAL_REGION; }
1432
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_AUSTRALIAN_REGION; }
1433
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_EAST_PALAEARCTIC; }
1434
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NEARCTIC_REGION; }
1435
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NEOTROPICAL_REGION; }
1436
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NEAR_EAST; }
1437
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_ORIENTAL_REGION; }
1438
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_EUROPEAN_MARINE_WATERS; }
1439
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_MEDITERRANEAN_SEA; }
1440
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_WHITE_SEA; }
1441
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NORTH_SEA; }
1442
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BALTIC_SEA; }
1443
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BLACK_SEA; }
1444
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BARENTS_SEA; }
1445
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_CASPIAN_SEA; }
1446
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_PORTUGUESE_EXCLUSIVE_ECONOMIC_ZONE; }
1447
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BELGIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1448
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_FRENCH_EXCLUSIVE_ECONOMIC_ZONE; }
1449
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_ENGLISH_CHANNEL; }
1450
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_ADRIATIC_SEA; }
1451
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BISCAY_BAY; }
1452
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_DUTCH_EXCLUSIVE_ECONOMIC_ZONE; }
1453
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_UNITED_KINGDOM_EXCLUSIVE_ECONOMIC_ZONE; }
1454
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SPANISH_EXCLUSIVE_ECONOMIC_ZONE; }
1455
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_EGYPTIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1456
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_GRECIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1457
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_TIRRENO_SEA; }
1458
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_ICELANDIC_EXCLUSIVE_ECONOMIC_ZONE; }
1459
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_IRISH_EXCLUSIVE_ECONOMIC_ZONE; }
1460
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_IRISH_SEA; }
1461
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_ITALIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1462
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NORWEGIAN_SEA; }
1463
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_MOROCCAN_EXCLUSIVE_ECONOMIC_ZONE; }
1464
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NORWEGIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1465
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SKAGERRAK; }
1466
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_TUNISIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1467
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_WADDEN_SEA; }
1468
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BELT_SEA; }
1469
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_MARMARA_SEA; }
1470
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SEA_OF_AZOV; }
1471
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_AEGEAN_SEA; }
1472
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BULGARIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1473
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SOUTH_BALTIC_PROPER; }
1474
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BALTIC_PROPER; }
1475
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_NORTH_BALTIC_PROPER; }
1476
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_ARCHIPELAGO_SEA; }
1477
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BOTHNIAN_SEA; }
1478
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_GERMAN_EXCLUSIVE_ECONOMIC_ZONE; }
1479
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SWEDISH_EXCLUSIVE_ECONOMIC_ZONE; }
1480
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_UKRAINIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1481
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_MADEIRAN_EXCLUSIVE_ECONOMIC_ZONE; }
1482
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_LEBANESE_EXCLUSIVE_ECONOMIC_ZONE; }
1483
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_SPANISH_EXCLUSIVE_ECONOMIC_ZONE_MEDITERRANEAN_PART; }
1484
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_ESTONIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1485
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_CROATIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1486
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_BALEAR_SEA; }
1487
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_TURKISH_EXCLUSIVE_ECONOMIC_ZONE; }
1488
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return STR_AREA_DANISH_EXCLUSIVE_ECONOMIC_ZONE; }
1489
			else {
1490
				logger.error("Unknown TdwgArea Area: " + area.getTitleCache());
1491
				return null; // Actually the export has to stop here because AreaFk's are not allowed to be NULL.
1492
			}
1493
		}
1494
		return null; // Actually the export has to stop here because AreaFk's are not allowed to be NULL.
1495
		
1496
	}
1497
	
1498
	/**
1499
	 * Returns the AreaId for a given Area.
1500
	 * @param area
1501
	 * @return
1502
	 */
1503
	public static Integer area2AreaId(NamedArea area) {
1504
		if (area == null) {
1505
			return null;
1506
		} else if (area.isInstanceOf(TdwgArea.class)) {
1507
			TdwgArea tdwgArea = CdmBase.deproxy(area, TdwgArea.class);
1508

    
1509
			// TODO: Areas identified by the string "TODO" (for now) have to be identified correctly after additions have been made to the list of TdwgArea's
1510
			if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_EAST_AEGEAN_ISLANDS; }
1511
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("EAI-OO")) { return AREA_GREEK_EAST_AEGEAN_ISLANDS; }
1512
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_TURKISH_EAST_AEGEAN_ISLANDS; }
1513
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ALB-OO")) { return AREA_ALBANIA; }
1514
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("AUT")) { return AREA_AUSTRIA_WITH_LIECHTENSTEIN; }
1515
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("AUT-AU")) { return AREA_AUSTRIA; }
1516
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("AUT-LI")) { return AREA_LIECHTENSTEIN; }
1517
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("AZO-OO")) { return AREA_AZORES; }
1518
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_CORVO; }
1519
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_FAIAL; }
1520
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_GRACIOSA; }
1521
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SAO_JORGE; }
1522
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_FLORES; }
1523
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SAO_MIGUEL; }
1524
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_PICO; }
1525
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SANTA_MARIA; }
1526
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_TERCEIRA; }
1527
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BGM")) { return AREA_BELGIUM_WITH_LUXEMBOURG; }
1528
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BGM-BE")) { return AREA_BELGIUM; }
1529
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BGM-LU")) { return AREA_LUXEMBOURG; }
1530
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-BH")) { return AREA_BOSNIA_HERZEGOVINA; }
1531
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BAL-OO")) { return AREA_BALEARES; }
1532
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_IBIZA_WITH_FORMENTERA; }
1533
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_MALLORCA; }
1534
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_MENORCA; }
1535
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("GRB-OO")) { return AREA_GREAT_BRITAIN; }
1536
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT")) { return AREA_BALTIC_STATES_ESTONIA_LATVIA_LITHUANIA_AND_KALININGRAD_REGION; }
1537
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BUL-OO")) { return AREA_BULGARIA; }
1538
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLR-OO")) { return AREA_BELARUS; }
1539
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CNY-OO")) { return AREA_CANARY_ISLANDS; }
1540
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_GRAN_CANARIA; }
1541
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_FUERTEVENTURA_WITH_LOBOS; }
1542
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_GOMERA; }
1543
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_HIERRO; }
1544
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_LANZAROTE_WITH_GRACIOSA; }
1545
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_LA_PALMA; }
1546
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_TENERIFE; }
1547
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-MN")) { return AREA_MONTENEGRO; }
1548
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("COR-OO")) { return AREA_CORSE; }
1549
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("KRI-OO")) { return AREA_CRETE_WITH_KARPATHOS_KASOS_AND_GAVDHOS; }
1550
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CZE-CZ")) { return AREA_CZECH_REPUBLIC; }
1551
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-CR")) { return AREA_CROATIA; }
1552
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CYP-OO")) { return AREA_CYPRUS; }
1553
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CZE")) { return AREA_FORMER_CZECHOSLOVAKIA; }
1554
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("DEN-OO")) { return AREA_DENMARK_WITH_BORNHOLM; }
1555
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-ES")) { return AREA_ESTONIA; }
1556
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FOR-OO")) { return AREA_FAROE_ISLANDS; }
1557
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FIN-OO")) { return AREA_FINLAND_WITH_AHVENANMAA; }
1558
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FRA")) { return AREA_FRANCE; }
1559
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FRA-CI")) { return AREA_CHANNEL_ISLANDS; }
1560
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FRA-FR")) { return AREA_FRENCH_MAINLAND; }
1561
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("FRA-MO")) { return AREA_MONACO; }
1562
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("GER-OO")) { return AREA_GERMANY; }
1563
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("GRC-OO")) { return AREA_GREECE_WITH_CYCLADES_AND_MORE_ISLANDS; }
1564
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("IRE")) { return AREA_IRELAND; }
1565
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("IRE-IR")) { return AREA_REPUBLIC_OF_IRELAND; }
1566
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("IRE-NI")) { return AREA_NORTHERN_IRELAND; }
1567
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SWI-OO")) { return AREA_SWITZERLAND; }
1568
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NET-OO")) { return AREA_NETHERLANDS; }
1569
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SPA")) { return AREA_SPAIN; }
1570
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SPA-AN")) { return AREA_ANDORRA; }
1571
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SPA-GI")) { return AREA_GIBRALTAR; }
1572
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SPA-SP")) { return AREA_KINGDOM_OF_SPAIN; }
1573
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("HUN-OO")) { return AREA_HUNGARY; }
1574
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ICE-OO")) { return AREA_ICELAND; }
1575
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ITA")) { return AREA_ITALY; }
1576
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ITA-IT")) { return AREA_ITALIAN_MAINLAND; }
1577
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ITA-SM")) { return AREA_SAN_MARINO; }
1578
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG")) { return AREA_FORMER_JUGOSLAVIA; }
1579
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-LA")) { return AREA_LATVIA; }
1580
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-LI")) { return AREA_LITHUANIA; }
1581
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("POR-OO")) { return AREA_PORTUGUESE_MAINLAND; }
1582
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MDR-OO")) { return AREA_MADEIRA; }
1583
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_DESERTAS; }
1584
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_MADEIRA; }
1585
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_PORTO_SANTO; }
1586
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-MA")) { return AREA_THE_FORMER_JUGOSLAV_REPUBLIC_OF_MAKEDONIJA; }
1587
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("OKR-MO")) { return AREA_MOLDOVA; }
1588
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NOR-OO")) { return AREA_NORWEGIAN_MAINLAND; }
1589
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("POL-OO")) { return AREA_POLAND; }
1590
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_THE_RUSSIAN_FEDERATION; }
1591
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("WSB-OO")) { return AREA_NOVAYA_ZEMLYA_AND_FRANZ_JOSEPH_LAND; }
1592
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUC-OO")) { return AREA_CENTRAL_EUROPEAN_RUSSIA; }
1593
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUE-OO")) { return AREA_EASTERN_EUROPEAN_RUSSIA; }
1594
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("BLT-KA")) { return AREA_KALININGRAD; }
1595
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUN-OO")) { return AREA_NORTHERN_EUROPEAN_RUSSIA; }
1596
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUW-OO")) { return AREA_NORTHWEST_EUROPEAN_RUSSIA; }
1597
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("RUS-OO")) { return AREA_SOUTH_EUROPEAN_RUSSIA; }
1598
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ROM-OO")) { return AREA_ROMANIA; }
1599
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_FORMER_USSR; }
1600
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_RUSSIA_BALTIC; }
1601
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_RUSSIA_CENTRAL; }
1602
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_RUSSIA_SOUTHEAST; }
1603
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_RUSSIA_NORTHERN; }
1604
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_RUSSIA_SOUTHWEST; }
1605
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SAR-OO")) { return AREA_SARDEGNA; }
1606
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SVA-OO")) { return AREA_SVALBARD_WITH_BJORNOYA_AND_JAN_MAYEN; }
1607
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SEL-OO")) { return AREA_SELVAGENS_ISLANDS; }
1608
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SIC")) { return AREA_SICILY_WITH_MALTA; }
1609
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SIC-MA")) { return AREA_MALTA; }
1610
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SIC-SI")) { return AREA_SICILY; }
1611
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("CZE-SK")) { return AREA_SLOVAKIA; }
1612
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-SL")) { return AREA_SLOVENIA; }
1613
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SERBIA_WITH_MONTENEGRO; }
1614
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("YUG-SE")) { return AREA_SERBIA_INCLUDING_VOJVODINA_AND_WITH_KOSOVO; }
1615
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SWE-OO")) { return AREA_SWEDEN; }
1616
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUE-OO")) { return AREA_EUROPEAN_TURKEY; }
1617
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_UKRAINE_INCLUDING_CRIMEA; }
1618
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("KRY-OO")) { return AREA_CRIMEA; }
1619
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("UKR-UK")) { return AREA_UKRAINE; }
1620
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_GREEK_MAINLAND; }
1621
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_CRETE; }
1622
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_DODECANESE_ISLANDS; }
1623
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_CYCLADES_ISLANDS; }
1624
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NORTH_AEGEAN_ISLANDS; }
1625
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_VATICAN_CITY; }
1626
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_FRANZ_JOSEF_LAND; }
1627
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NOVAYA_ZEMLYA; }
1628
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_AZERBAIJAN_INCLUDING_NAKHICHEVAN; }
1629
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TCS-AZ")) { return AREA_AZERBAIJAN; }
1630
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TCS-NA")) { return AREA_NAKHICHEVAN; }
1631
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("ALG-OO")) { return AREA_ALGERIA; }
1632
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_ARMENIA; }
1633
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_CAUCASUS_REGION; }
1634
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("EGY-OO")) { return AREA_EGYPT; }
1635
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_GEORGIA; }
1636
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("PAL")) { return AREA_ISRAEL_JORDAN; }
1637
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("PAL-IS")) { return AREA_ISRAEL; }
1638
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("PAL-JO")) { return AREA_JORDAN; }
1639
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("LBS-LB")) { return AREA_LEBANON; }
1640
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("LBY-OO")) { return AREA_LIBYA; }
1641
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("LBS")) { return AREA_LEBANON_SYRIA; }
1642
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("MOR")) { return AREA_MOROCCO; }
1643
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("NCS")) { return AREA_NORTH_CAUCASUS; }
1644
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("SIN-OO")) { return AREA_SINAI; }
1645
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("LBS-SY")) { return AREA_SYRIA; }
1646
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUN-OO")) { return AREA_TUNISIA; }
1647
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TUR-OO")) { return AREA_ASIATIC_TURKEY; }
1648
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_TURKEY; }
1649
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NORTHERN_AFRICA; }
1650
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_AFRO_TROPICAL_REGION; }
1651
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_AUSTRALIAN_REGION; }
1652
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_EAST_PALAEARCTIC; }
1653
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NEARCTIC_REGION; }
1654
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NEOTROPICAL_REGION; }
1655
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NEAR_EAST; }
1656
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_ORIENTAL_REGION; }
1657
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_EUROPEAN_MARINE_WATERS; }
1658
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_MEDITERRANEAN_SEA; }
1659
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_WHITE_SEA; }
1660
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NORTH_SEA; }
1661
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BALTIC_SEA; }
1662
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BLACK_SEA; }
1663
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BARENTS_SEA; }
1664
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_CASPIAN_SEA; }
1665
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_PORTUGUESE_EXCLUSIVE_ECONOMIC_ZONE; }
1666
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BELGIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1667
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_FRENCH_EXCLUSIVE_ECONOMIC_ZONE; }
1668
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_ENGLISH_CHANNEL; }
1669
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_ADRIATIC_SEA; }
1670
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BISCAY_BAY; }
1671
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_DUTCH_EXCLUSIVE_ECONOMIC_ZONE; }
1672
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_UNITED_KINGDOM_EXCLUSIVE_ECONOMIC_ZONE; }
1673
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SPANISH_EXCLUSIVE_ECONOMIC_ZONE; }
1674
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_EGYPTIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1675
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_GRECIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1676
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_TIRRENO_SEA; }
1677
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_ICELANDIC_EXCLUSIVE_ECONOMIC_ZONE; }
1678
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_IRISH_EXCLUSIVE_ECONOMIC_ZONE; }
1679
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_IRISH_SEA; }
1680
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_ITALIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1681
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NORWEGIAN_SEA; }
1682
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_MOROCCAN_EXCLUSIVE_ECONOMIC_ZONE; }
1683
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NORWEGIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1684
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SKAGERRAK; }
1685
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_TUNISIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1686
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_WADDEN_SEA; }
1687
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BELT_SEA; }
1688
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_MARMARA_SEA; }
1689
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SEA_OF_AZOV; }
1690
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_AEGEAN_SEA; }
1691
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BULGARIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1692
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SOUTH_BALTIC_PROPER; }
1693
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BALTIC_PROPER; }
1694
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_NORTH_BALTIC_PROPER; }
1695
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_ARCHIPELAGO_SEA; }
1696
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BOTHNIAN_SEA; }
1697
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_GERMAN_EXCLUSIVE_ECONOMIC_ZONE; }
1698
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SWEDISH_EXCLUSIVE_ECONOMIC_ZONE; }
1699
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_UKRAINIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1700
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_MADEIRAN_EXCLUSIVE_ECONOMIC_ZONE; }
1701
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_LEBANESE_EXCLUSIVE_ECONOMIC_ZONE; }
1702
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_SPANISH_EXCLUSIVE_ECONOMIC_ZONE_MEDITERRANEAN_PART; }
1703
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_ESTONIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1704
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_CROATIAN_EXCLUSIVE_ECONOMIC_ZONE; }
1705
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_BALEAR_SEA; }
1706
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_TURKISH_EXCLUSIVE_ECONOMIC_ZONE; }
1707
			else if ((tdwgArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()).equals("TODO")) { return AREA_DANISH_EXCLUSIVE_ECONOMIC_ZONE; }
1708
			else {
1709
				logger.error("Unknown TdwgArea Area: " + area.getTitleCache());
1710
				return 1; // TODO: Actually the export has to stop here because AreaFk's are not allowed to be NULL and another value is plain wrong.
1711
			}
1712
		}
1713
		return 1; // TODO: Actually the export has to stop here because AreaFk's are not allowed to be NULL and another value is plain wrong.
1714

    
1715
	}
1716

    
1717
	/**
1718
	 * Returns the PESI SourceUseId for a given CDM sourceUseId.
1719
	 * @param sourceUseId
1720
	 * @return
1721
	 */
1722
	public static Integer sourceUseIdSourceUseId(Integer sourceUseId) {
1723
		// TODO: CDM sourceUseId and PESI sourceUseId are equal for now.
1724
		Integer result = null;
1725
		switch (sourceUseId) {
1726
			case 3: return ADDITIONAL_SOURCE;
1727
			case 4: return SOURCE_OF_SYNONYMY;
1728
			case 8: return NOMENCLATURAL_REFERENCE;
1729
		}
1730
		return result;
1731
	}
1732
	
1733
	/**
1734
	 * Returns the SourceUseCache for a tiven sourceUseId.
1735
	 * @param sourceUseId
1736
	 * @return
1737
	 */
1738
	public static String sourceUseId2SourceUseCache(Integer sourceUseId) {
1739
		// TODO: CDM sourceUseId and PESI sourceUseId are equal for now.
1740
		String result = null;
1741
		switch (sourceUseId) {
1742
			case 3: return STR_ADDITIONAL_SOURCE;
1743
			case 4: return STR_SOURCE_OF_SYNONYMY;
1744
			case 8: return STR_NOMENCLATURAL_REFERENCE;
1745
		}
1746
		return result;
1747
	}
1748
	
1749
	/**
1750
	 * Returns the FossilStatusCache to a given Fossil.
1751
	 * @param fossil
1752
	 * @return
1753
	 */
1754
	public static String fossil2FossilStatusCache(Fossil fossil) {
1755
		String result = null;
1756
		return result;
1757
	}
1758

    
1759
	/**
1760
	 * Returns the FossilStatusId to a given Fossil.
1761
	 * @param fossil
1762
	 * @return
1763
	 */
1764
	public static Integer fossil2FossilStatusId(Fossil fossil) {
1765
		Integer result = null;
1766
		return result;
1767
	}
1768
	
1769
	/**
1770
	 * Returns the LanguageCache to a given Language.
1771
	 * @param language
1772
	 * @return
1773
	 */
1774
	public static String language2LanguageCache(Language language) {
1775
		if (language == null ) {
1776
			return null;
1777
		}
1778
		if (language.equals(Language.ALBANIAN())) {
1779
			return STR_LANGUAGE_ALBANIAN;
1780
		} else if (language.equals(Language.ARABIC())) {
1781
			return STR_LANGUAGE_ARABIC;
1782
		} else if (language.equals(Language.ARMENIAN())) {
1783
			return STR_LANGUAGE_ARMENIAN;
1784
		} else if (language.equals(Language.AZERBAIJANI())) {
1785
			return STR_LANGUAGE_AZERBAIJAN;
1786
		} else if (language.equals(Language.BELORUSSIAN())) {
1787
			return STR_LANGUAGE_BELARUSIAN;
1788
		} else if (language.equals(Language.BULGARIAN())) {
1789
			return STR_LANGUAGE_BULGARIAN;
1790
		} else if (language.equals(Language.CATALAN_VALENCIAN())) {
1791
			return STR_LANGUAGE_CATALAN;
1792
		} else if (language.equals(Language.CROATIAN())) {
1793
			return STR_LANGUAGE_CROAT;
1794
		} else if (language.equals(Language.CZECH())) {
1795
			return STR_LANGUAGE_CZECH;
1796
		} else if (language.equals(Language.DANISH())) {
1797
			return STR_LANGUAGE_DANISH;
1798
		} else if (language.equals(Language.DUTCH_MIDDLE())) {
1799
			return STR_LANGUAGE_DUTCH;
1800
		} else if (language.equals(Language.ENGLISH())) {
1801
			return STR_LANGUAGE_ENGLISH;
1802
//		} else if (language.equals(Language.)) {
1803
//			return STR_LANGUAGE_EUSKERA;
1804
		} else if (language.equals(Language.ESTONIAN())) {
1805
			return STR_LANGUAGE_ESTONIAN;
1806
		} else if (language.equals(Language.FINNISH())) {
1807
			return STR_LANGUAGE_FINNISH;
1808
		} else if (language.equals(Language.FRENCH())) {
1809
			return STR_LANGUAGE_FRENCH;
1810
		} else if (language.equals(Language.GEORGIAN())) {
1811
			return STR_LANGUAGE_GEORGIAN;
1812
		} else if (language.equals(Language.GERMAN())) {
1813
			return STR_LANGUAGE_GERMAN;
1814
		} else if (language.equals(Language.GREEK_MODERN())) {
1815
			return STR_LANGUAGE_GREEK;
1816
		} else if (language.equals(Language.HUNGARIAN())) {
1817
			return STR_LANGUAGE_HUNGARIAN;
1818
		} else if (language.equals(Language.ICELANDIC())) {
1819
			return STR_LANGUAGE_ICELANDIC;
1820
		} else if (language.equals(Language.IRISH())) {
1821
			return STR_LANGUAGE_IRISH_GAELIC;
1822
		} else if (language.equals(Language.HEBREW())) {
1823
			return STR_LANGUAGE_ISRAEL_HEBREW;
1824
		} else if (language.equals(Language.ITALIAN())) {
1825
			return STR_LANGUAGE_ITALIAN;
1826
		} else if (language.equals(Language.LATVIAN())) {
1827
			return STR_LANGUAGE_LATVIAN;
1828
		} else if (language.equals(Language.LITHUANIAN())) {
1829
			return STR_LANGUAGE_LITHUANIAN;
1830
		} else if (language.equals(Language.MACEDONIAN())) {
1831
			return STR_LANGUAGE_MACEDONIAN;
1832
		} else if (language.equals(Language.MALTESE())) {
1833
			return STR_LANGUAGE_MALTESE;
1834
		} else if (language.equals(Language.MOLDAVIAN())) {
1835
			return STR_LANGUAGE_MOLDOVIAN;
1836
		} else if (language.equals(Language.NORWEGIAN())) {
1837
			return STR_LANGUAGE_NORWEGIAN;
1838
		} else if (language.equals(Language.POLISH())) {
1839
			return STR_LANGUAGE_POLISH;
1840
		} else if (language.equals(Language.PORTUGUESE())) {
1841
			return STR_LANGUAGE_PORTUGUESE;
1842
		} else if (language.equals(Language.ROMANIAN())) {
1843
			return STR_LANGUAGE_ROUMANIAN;
1844
		} else if (language.equals(Language.RUSSIAN())) {
1845
			return STR_LANGUAGE_RUSSIAN;
1846
//		} else if (language.equals(Language.)) {
1847
//			return STR_LANGUAGE_RUSSIAN_CAUCASIAN;
1848
//		} else if (language.equals(Language.)) {
1849
//			return STR_LANGUAGE_RUSSIAN_ALTAIC_KALMYK_OIRAT;
1850
//		} else if (language.equals(Language.)) {
1851
//			return STR_LANGUAGE_RUSSIAN_ALTAIC_KARACHAY_BALKAR;
1852
//		} else if (language.equals(Language.)) {
1853
//			return STR_LANGUAGE_RUSSIAN_ALTAIC_KUMYK;
1854
//		} else if (language.equals(Language.)) {
1855
//			return STR_LANGUAGE_RUSSIAN_ALTAIC_NOGAI;
1856
//		} else if (language.equals(Language.)) {
1857
//			return STR_LANGUAGE_RUSSIAN_ALTAIC_NORTH_AZERBAIJANI;
1858
//		} else if (language.equals(Language.)) {
1859
//			return STR_LANGUAGE_RUSSIAN_INDO_EUROPEAN_RUSSIAN;
1860
//		} else if (language.equals(Language.)) {
1861
//			return STR_LANGUAGE_RUSSIAN_INDO_EUROPEAN_KALMYK_OIRAT;
1862
//		} else if (language.equals(Language.)) {
1863
//			return STR_LANGUAGE_RUSSIAN_INDO_EUROPEAN_OSETIN;
1864
//		} else if (language.equals(Language.)) {
1865
//			return STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_ABAZA;
1866
//		} else if (language.equals(Language.)) {
1867
//			return STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_ADYGHE;
1868
//		} else if (language.equals(Language.)) {
1869
//			return STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_CHECHEN;
1870
//		} else if (language.equals(Language.)) {
1871
//			return STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_KABARDIAN;
1872
//		} else if (language.equals(Language.)) {
1873
//			return STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_LAK;
1874
//		} else if (language.equals(Language.)) {
1875
//			return STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_AVAR;
1876
//		} else if (language.equals(Language.)) {
1877
//			return STR_LANGUAGE_RUSSIAN_NORTH_CAUCASIAN_IN;
1878
//		} else if (language.equals(Language.)) {
1879
//			return STR_LANGUAGE_RUSSIAN_URALIC_CHUVASH;
1880
//		} else if (language.equals(Language.)) {
1881
//			return STR_LANGUAGE_RUSSIAN_URALIC_UDMURT;
1882
		} else if (language.equals(Language.SERBIAN())) {
1883
			return STR_LANGUAGE_SERBIAN;
1884
		} else if (language.equals(Language.SLOVAK())) {
1885
			return STR_LANGUAGE_SLOVAK;
1886
		} else if (language.equals(Language.SLOVENIAN())) {
1887
			return STR_LANGUAGE_SLOVENE;
1888
		} else if (language.equals(Language.SPANISH_CATALAN())) {
1889
			return STR_LANGUAGE_SPANISH_CASTILLIAN;
1890
		} else if (language.equals(Language.SWEDISH())) {
1891
			return STR_LANGUAGE_SWEDISH;
1892
		} else if (language.equals(Language.TURKISH())) {
1893
			return STR_LANGUAGE_TURKISH;
1894
		} else if (language.equals(Language.UKRAINIAN())) {
1895
			return STR_LANGUAGE_UKRAINE;
1896
		} else if (language.equals(Language.WELSH())) {
1897
			return STR_LANGUAGE_WELSH;
1898
		} else if (language.equals(Language.CORSICAN())) {
1899
			return STR_LANGUAGE_CORSICAN;
1900
		} else {
1901
			logger.debug("Unknown Language: " + language.getTitleCache());
1902
			return null;
1903
		}
1904
	}
1905
	
1906
	/**
1907
	 * Returns the identifier of the given Language.
1908
	 * @param language
1909
	 * @return
1910
	 */
1911
	public static Integer language2LanguageId(Language language) {
1912
		if (language == null ) {
1913
			return null;
1914
		}
1915
		if (language.equals(Language.ALBANIAN())) {
1916
			return Language_Albanian;
1917
		} else if (language.equals(Language.ARABIC())) {
1918
			return Language_Arabic;
1919
		} else if (language.equals(Language.ARMENIAN())) {
1920
			return Language_Armenian;
1921
		} else if (language.equals(Language.AZERBAIJANI())) {
1922
			return Language_Azerbaijan;
1923
		} else if (language.equals(Language.BELORUSSIAN())) {
1924
			return Language_Belarusian;
1925
		} else if (language.equals(Language.BULGARIAN())) {
1926
			return Language_Bulgarian;
1927
		} else if (language.equals(Language.CATALAN_VALENCIAN())) {
1928
			return Language_Catalan;
1929
		} else if (language.equals(Language.CROATIAN())) {
1930
			return Language_Croat;
1931
		} else if (language.equals(Language.CZECH())) {
1932
			return Language_Czech;
1933
		} else if (language.equals(Language.DANISH())) {
1934
			return Language_Danish;
1935
		} else if (language.equals(Language.DUTCH_MIDDLE())) {
1936
			return Language_Dutch;
1937
		} else if (language.equals(Language.ENGLISH())) {
1938
			return Language_English;
1939
//		} else if (language.equals(Language.)) {
1940
//			return Language_Euskera;
1941
		} else if (language.equals(Language.ESTONIAN())) {
1942
			return Language_Estonian;
1943
		} else if (language.equals(Language.FINNISH())) {
1944
			return Language_Finnish;
1945
		} else if (language.equals(Language.FRENCH())) {
1946
			return Language_French;
1947
		} else if (language.equals(Language.GEORGIAN())) {
1948
			return Language_Georgian;
1949
		} else if (language.equals(Language.GERMAN())) {
1950
			return Language_German;
1951
		} else if (language.equals(Language.GREEK_MODERN())) {
1952
			return Language_Greek;
1953
		} else if (language.equals(Language.HUNGARIAN())) {
1954
			return Language_Hungarian;
1955
		} else if (language.equals(Language.ICELANDIC())) {
1956
			return Language_Icelandic;
1957
		} else if (language.equals(Language.IRISH())) {
1958
			return Language_Irish_Gaelic;
1959
		} else if (language.equals(Language.HEBREW())) {
1960
			return Language_Israel_Hebrew;
1961
		} else if (language.equals(Language.ITALIAN())) {
1962
			return Language_Italian;
1963
		} else if (language.equals(Language.LATVIAN())) {
1964
			return Language_Latvian;
1965
		} else if (language.equals(Language.LITHUANIAN())) {
1966
			return Language_Lithuanian;
1967
		} else if (language.equals(Language.MACEDONIAN())) {
1968
			return Language_Macedonian;
1969
		} else if (language.equals(Language.MALTESE())) {
1970
			return Language_Maltese;
1971
		} else if (language.equals(Language.MOLDAVIAN())) {
1972
			return Language_Moldovian;
1973
		} else if (language.equals(Language.NORWEGIAN())) {
1974
			return Language_Norwegian;
1975
		} else if (language.equals(Language.POLISH())) {
1976
			return Language_Polish;
1977
		} else if (language.equals(Language.PORTUGUESE())) {
1978
			return Language_Portuguese;
1979
		} else if (language.equals(Language.ROMANIAN())) {
1980
			return Language_Roumanian;
1981
		} else if (language.equals(Language.RUSSIAN())) {
1982
			return Language_Russian;
1983
//		} else if (language.equals(Language.)) {
1984
//			return Language_Russian_Caucasian;
1985
//		} else if (language.equals(Language.)) {
1986
//			return Language_Russian_Altaic_kalmyk_oirat;
1987
//		} else if (language.equals(Language.)) {
1988
//			return Language_Russian_Altaic_karachay_balkar;
1989
//		} else if (language.equals(Language.)) {
1990
//			return Language_Russian_Altaic_kumyk;
1991
//		} else if (language.equals(Language.)) {
1992
//			return Language_Russian_Altaic_nogai;
1993
//		} else if (language.equals(Language.)) {
1994
//			return Language_Russian_Altaic_north_azerbaijani;
1995
//		} else if (language.equals(Language.)) {
1996
//			return Language_Russian_Indo_european_russian;
1997
//		} else if (language.equals(Language.)) {
1998
//			return Language_Russian_Indo_european_kalmyk_oirat;
1999
//		} else if (language.equals(Language.)) {
2000
//			return Language_Russian_Indo_european_osetin;
2001
//		} else if (language.equals(Language.)) {
2002
//			return Language_Russian_North_caucasian_abaza;
2003
//		} else if (language.equals(Language.)) {
2004
//			return Language_Russian_North_caucasian_adyghe;
2005
//		} else if (language.equals(Language.)) {
2006
//			return Language_Russian_North_caucasian_chechen;
2007
//		} else if (language.equals(Language.)) {
2008
//			return Language_Russian_North_caucasian_kabardian;
2009
//		} else if (language.equals(Language.)) {
2010
//			return Language_Russian_North_caucasian_lak;
2011
//		} else if (language.equals(Language.)) {
2012
//			return Language_Russian_North_caucasian_avar;
2013
//		} else if (language.equals(Language.)) {
2014
//			return Language_Russian_North_caucasian_in;
2015
//		} else if (language.equals(Language.)) {
2016
//			return Language_Russian_Uralic_chuvash;
2017
//		} else if (language.equals(Language.)) {
2018
//			return Language_Russian_Uralic_udmurt;
2019
		} else if (language.equals(Language.SERBIAN())) {
2020
			return Language_Serbian;
2021
		} else if (language.equals(Language.SLOVAK())) {
2022
			return Language_Slovak;
2023
		} else if (language.equals(Language.SLOVENIAN())) {
2024
			return Language_Slovene;
2025
		} else if (language.equals(Language.SPANISH_CATALAN())) {
2026
			return Language_Spanish_Castillian;
2027
		} else if (language.equals(Language.SWEDISH())) {
2028
			return Language_Swedish;
2029
		} else if (language.equals(Language.TURKISH())) {
2030
			return Language_Turkish;
2031
		} else if (language.equals(Language.UKRAINIAN())) {
2032
			return Language_Ukraine;
2033
		} else if (language.equals(Language.WELSH())) {
2034
			return Language_Welsh;
2035
		} else if (language.equals(Language.CORSICAN())) {
2036
			return Language_Corsican;
2037
		} else {
2038
			logger.debug("Unknown Language: " + language.getTitleCache());
2039
			return null;
2040
		}
2041
	}
2042
	
2043
	/**
2044
	 * Returns the NodeCategoryCache for a given TextData.
2045
	 * @param feature
2046
	 * @return
2047
	 */
2048
	public static String textData2NodeCategoryCache(Feature feature) {
2049
		if (feature == null) {
2050
			return null;
2051
		}
2052
		if (feature.equals(Feature.DESCRIPTION())) {
2053
			return NoteCategory_STR_description;
2054
		} else if (feature.equals(Feature.ECOLOGY())) {
2055
			return NoteCategory_STR_ecology;
2056
		} else if (feature.equals(Feature.PHENOLOGY())) {
2057
			return NoteCategory_STR_phenology;
2058
		} else if (feature.equals(Feature.COMMON_NAME())) {
2059
			return NoteCategory_STR_Common_names;
2060
		} else if (feature.equals(Feature.OCCURRENCE())) {
2061
			return NoteCategory_STR_Occurrence;
2062
//		} else if (feature.equals(Feature.CITATION())) {
2063
//			return;
2064
			
2065
			// TODO: Unknown NodeCategories
2066
//			NoteCategory_general_distribution_euromed = 10;
2067
//			NoteCategory_general_distribution_world = 11;
2068
//			NoteCategory_Common_names = 12;
2069
//			NoteCategory_Maps =14;
2070
//			NoteCategory_Link_to_maps = 20;
2071
//			NoteCategory_Link_to_images = 21;
2072
//			NoteCategory_Link_to_taxonomy = 22;
2073
//			NoteCategory_Link_to_general_information = 23;
2074
//			NoteCategory_undefined_link = 24;
2075
//			NoteCategory_Editor_Braces = 249;
2076
//			NoteCategory_Editor_Brackets = 250;
2077
//			NoteCategory_Editor_Parenthesis = 251;
2078
//			NoteCategory_Inedited = 252;
2079
//			NoteCategory_Comments_on_editing_process = 253;
2080
//			NoteCategory_Publication_date = 254;
2081
//			NoteCategory_Morphology = 255;
2082
//			NoteCategory_Acknowledgments = 257;
2083
//			NoteCategory_Original_publication = 258;
2084
//			NoteCategory_Type_locality	= 259;
2085
//			NoteCategory_Environment = 260;
2086
//			NoteCategory_Spelling = 261;
2087
//			NoteCategory_Systematics = 262;
2088
//			NoteCategory_Remark = 263;
2089
//			NoteCategory_Date_of_publication = 264;
2090
//			NoteCategory_Additional_information = 266;
2091
//			NoteCategory_Status = 267;
2092
//			NoteCategory_Nomenclature = 268;
2093
//			NoteCategory_Homonymy = 269;
2094
//			NoteCategory_Taxonomy = 270;
2095
//			NoteCategory_Taxonomic_status = 272;
2096
//			NoteCategory_Authority	= 273;
2097
//			NoteCategory_Identification = 274;
2098
//			NoteCategory_Validity = 275;
2099
//			NoteCategory_Classification = 276;
2100
//			NoteCategory_Distribution = 278;
2101
//			NoteCategory_Synonymy = 279;
2102
//			NoteCategory_Habitat = 280;
2103
//			NoteCategory_Biology = 281;
2104
//			NoteCategory_Diagnosis	= 282;
2105
//			NoteCategory_Host = 283;
2106
//			NoteCategory_Note = 284;
2107
//			NoteCategory_Rank = 285;
2108
//			NoteCategory_Taxonomic_Remark = 286;
2109
//			NoteCategory_Taxonomic_Remarks = 287;
2110

    
2111
 		} else {
2112
			logger.debug("Unknown Feature.");
2113
			return null;
2114
		}
2115
	}
2116

    
2117
	/**
2118
	 * Returns the NodeCategoryFk for a given TextData.
2119
	 * @param feature
2120
	 * @return
2121
	 */
2122
	public static Integer textData2NodeCategoryFk(Feature feature) {
2123
		if (feature == null) {
2124
			return null;
2125
		}
2126
		if (feature.equals(Feature.DESCRIPTION())) {
2127
			return NoteCategory_description;
2128
		} else if (feature.equals(Feature.ECOLOGY())) {
2129
			return NoteCategory_ecology;
2130
		} else if (feature.equals(Feature.PHENOLOGY())) {
2131
			return NoteCategory_phenology;
2132
//		} else if (feature.equals(Feature.COMMON_NAME())) {
2133
//			return NoteCategory_Common_names;
2134
//		} else if (feature.equals(Feature.OCCURRENCE())) {
2135
//			return NoteCategory_Occurrence;
2136
//		} else if (feature.equals(Feature.CITATION())) {
2137
//			return;
2138
			
2139
			// TODO: Unknown NodeCategories
2140
//			NoteCategory_general_distribution_euromed = 10;
2141
//			NoteCategory_general_distribution_world = 11;
2142
//			NoteCategory_Common_names = 12;
2143
//			NoteCategory_Maps =14;
2144
//			NoteCategory_Link_to_maps = 20;
2145
//			NoteCategory_Link_to_images = 21;
2146
//			NoteCategory_Link_to_taxonomy = 22;
2147
//			NoteCategory_Link_to_general_information = 23;
2148
//			NoteCategory_undefined_link = 24;
2149
//			NoteCategory_Editor_Braces = 249;
2150
//			NoteCategory_Editor_Brackets = 250;
2151
//			NoteCategory_Editor_Parenthesis = 251;
2152
//			NoteCategory_Inedited = 252;
2153
//			NoteCategory_Comments_on_editing_process = 253;
2154
//			NoteCategory_Publication_date = 254;
2155
//			NoteCategory_Morphology = 255;
2156
//			NoteCategory_Acknowledgments = 257;
2157
//			NoteCategory_Original_publication = 258;
2158
//			NoteCategory_Type_locality	= 259;
2159
//			NoteCategory_Environment = 260;
2160
//			NoteCategory_Spelling = 261;
2161
//			NoteCategory_Systematics = 262;
2162
//			NoteCategory_Remark = 263;
2163
//			NoteCategory_Date_of_publication = 264;
2164
//			NoteCategory_Additional_information = 266;
2165
//			NoteCategory_Status = 267;
2166
//			NoteCategory_Nomenclature = 268;
2167
//			NoteCategory_Homonymy = 269;
2168
//			NoteCategory_Taxonomy = 270;
2169
//			NoteCategory_Taxonomic_status = 272;
2170
//			NoteCategory_Authority	= 273;
2171
//			NoteCategory_Identification = 274;
2172
//			NoteCategory_Validity = 275;
2173
//			NoteCategory_Classification = 276;
2174
//			NoteCategory_Distribution = 278;
2175
//			NoteCategory_Synonymy = 279;
2176
//			NoteCategory_Habitat = 280;
2177
//			NoteCategory_Biology = 281;
2178
//			NoteCategory_Diagnosis	= 282;
2179
//			NoteCategory_Host = 283;
2180
//			NoteCategory_Note = 284;
2181
//			NoteCategory_Rank = 285;
2182
//			NoteCategory_Taxonomic_Remark = 286;
2183
//			NoteCategory_Taxonomic_Remarks = 287;
2184

    
2185
		}else{
2186
			logger.warn("Unknown Feature.");
2187
			return null;
2188
		}
2189
	}
2190

    
2191
	/**
2192
	 * Returns the string representation for a given rank.
2193
	 * @param rank
2194
	 * @param pesiKingdomId
2195
	 * @return
2196
	 */
2197
	public static String rank2RankCache(Rank rank, Integer pesiKingdomId) {
2198
		String result = null;
2199
		if (rank == null) {
2200
			return null;
2201
		}
2202
		
2203
		// We differentiate between Animalia and Plantae only for now.
2204
		if (pesiKingdomId == KINGDOM_ANIMALIA) {
2205
			if (rank.equals(Rank.KINGDOM())) {
2206
				result = Animalia_STR_Kingdom;
2207
			} else if (rank.equals(Rank.SUBKINGDOM())) {
2208
				result = Animalia_STR_Subkingdom;
2209
			} else if (rank.equals(Rank.SUPERPHYLUM())) {
2210
				result = Animalia_STR_Superphylum;
2211
			} else if (rank.equals(Rank.PHYLUM())) {
2212
				result = Animalia_STR_Phylum;
2213
			} else if (rank.equals(Rank.SUBPHYLUM())) {
2214
				result = Animalia_STR_Subphylum;
2215
			} else if (rank.equals(Rank.INFRAPHYLUM())) {
2216
				result = Animalia_STR_Infraphylum;
2217
			} else if (rank.equals(Rank.SUPERCLASS())) {
2218
				result = Animalia_STR_Superclass;
2219
			} else if (rank.equals(Rank.CLASS())) {
2220
				result = Animalia_STR_Class;
2221
			} else if (rank.equals(Rank.SUBCLASS())) {
2222
				result = Animalia_STR_Subclass;
2223
			} else if (rank.equals(Rank.INFRACLASS())) {
2224
				result = Animalia_STR_Infraclass;
2225
			} else if (rank.equals(Rank.SUPERORDER())) {
2226
				result = Animalia_STR_Superorder;
2227
			} else if (rank.equals(Rank.ORDER())) {
2228
				result = Animalia_STR_Order;
2229
			} else if (rank.equals(Rank.SUBORDER())) {
2230
				result = Animalia_STR_Suborder;
2231
			} else if (rank.equals(Rank.INFRAORDER())) {
2232
				result = Animalia_STR_Infraorder;
2233
			} else if (rank.equals(Rank.SECTION_ZOOLOGY())) {
2234
				result = Animalia_STR_Section;
2235
			} else if (rank.equals(Rank.SUBSECTION_ZOOLOGY())) {
2236
				result = Animalia_STR_Subsection;
2237
			} else if (rank.equals(Rank.SUPERFAMILY())) {
2238
				result = Animalia_STR_Superfamily;
2239
			} else if (rank.equals(Rank.FAMILY())) {
2240
				result = Animalia_STR_Family;
2241
			} else if (rank.equals(Rank.SUBFAMILY())) {
2242
				result = Animalia_STR_Subfamily;
2243
			} else if (rank.equals(Rank.TRIBE())) {
2244
				result = Animalia_STR_Tribe;
2245
			} else if (rank.equals(Rank.SUBTRIBE())) {
2246
				result = Animalia_STR_Subtribe;
2247
			} else if (rank.equals(Rank.GENUS())) {
2248
				result = Animalia_STR_Genus;
2249
			} else if (rank.equals(Rank.SUBGENUS())) {
2250
				result = Animalia_STR_Subgenus;
2251
			} else if (rank.equals(Rank.SPECIES())) {
2252
				result = Animalia_STR_Species;
2253
			} else if (rank.equals(Rank.SUBSPECIES())) {
2254
				result = Animalia_STR_Subspecies;
2255
//			} else if (rank.equals(Rank.)) { // not yet specified
2256
//				result = Animalia_STR_Natio;
2257
			} else if (rank.equals(Rank.VARIETY())) {
2258
				result = Animalia_STR_Variety;
2259
			} else if (rank.equals(Rank.SUBVARIETY())) {
2260
				result = Animalia_STR_Subvariety;
2261
			} else if (rank.equals(Rank.FORM())) {
2262
				result = Animalia_STR_Forma;
2263
			} else {
2264
				//TODO Exception
2265
				logger.warn("Rank for Kingdom Animalia not yet supported in CDM: "+ rank.getLabel());
2266
				return null;
2267
			}
2268
		} else if (pesiKingdomId == KINGDOM_PLANTAE) {
2269
			if (rank.equals(Rank.KINGDOM())) {
2270
				result = Plantae_STR_Kingdom;
2271
			} else if (rank.equals(Rank.SUBKINGDOM())) {
2272
				result = Plantae_STR_Subkingdom;
2273
			} else if (rank.equals(Rank.DIVISION())) {
2274
				result = Plantae_STR_Division;
2275
			} else if (rank.equals(Rank.SUBDIVISION())) {
2276
				result = Plantae_STR_Subdivision;
2277
			} else if (rank.equals(Rank.CLASS())) {
2278
				result = Plantae_STR_Class;
2279
			} else if (rank.equals(Rank.SUBCLASS())) {
2280
				result = Plantae_STR_Subclass;
2281
			} else if (rank.equals(Rank.ORDER())) {
2282
				result = Plantae_STR_Order;
2283
			} else if (rank.equals(Rank.SUBORDER())) {
2284
				result = Plantae_STR_Suborder;
2285
			} else if (rank.equals(Rank.FAMILY())) {
2286
				result = Plantae_STR_Family;
2287
			} else if (rank.equals(Rank.SUBFAMILY())) {
2288
				result = Plantae_STR_Subfamily;
2289
			} else if (rank.equals(Rank.TRIBE())) {
2290
				result = Plantae_STR_Tribe;
2291
			} else if (rank.equals(Rank.SUBTRIBE())) {
2292
				result = Plantae_STR_Subtribe;
2293
			} else if (rank.equals(Rank.GENUS())) {
2294
				result = Plantae_STR_Genus;
2295
			} else if (rank.equals(Rank.SUBGENUS())) {
2296
				result = Plantae_STR_Subgenus;
2297
			} else if (rank.equals(Rank.SECTION_BOTANY())) {
2298
				result = Plantae_STR_Section;
2299
			} else if (rank.equals(Rank.SUBSECTION_BOTANY())) {
2300
				result = Plantae_STR_Subsection;
2301
			} else if (rank.equals(Rank.SERIES())) {
2302
				result = Plantae_STR_Series;
2303
			} else if (rank.equals(Rank.SUBSERIES())) {
2304
				result = Plantae_STR_Subseries;
2305
//			} else if (rank.equals(Rank.)) { // not yet specified
2306
//				result = Plantae_STR_Aggregate;
2307
//			} else if (rank.equals(Rank.)) { // not yet specified
2308
//				result = Plantae_STR_Coll_Species;
2309
			} else if (rank.equals(Rank.SPECIES())) {
2310
				result = Plantae_STR_Species;
2311
			} else if (rank.equals(Rank.SUBSPECIES())) {
2312
				result = Plantae_STR_Subspecies;
2313
//			} else if (rank.equals(Rank.)) { // not yet specified
2314
//				result = Plantae_STR_Proles;
2315
//			} else if (rank.equals(Rank.)) { // not yet specified
2316
//				result = Plantae_STR_Race;
2317
			} else if (rank.equals(Rank.CONVAR())) {
2318
				result = Plantae_STR_Convarietas;
2319
			} else if (rank.equals(Rank.VARIETY())) {
2320
				result = Plantae_STR_Variety;
2321
			} else if (rank.equals(Rank.SUBVARIETY())) {
2322
				result = Plantae_STR_Subvariety;
2323
			} else if (rank.equals(Rank.FORM())) {
2324
				result = Plantae_STR_Forma;
2325
			} else if (rank.equals(Rank.SUBFORM())) {
2326
				result = Plantae_STR_Subforma;
2327
//			} else if (rank.equals(Rank.)) { // not yet specified
2328
//				result = Plantae_STR_Forma_spec;
2329
//			} else if (rank.equals(Rank.)) { // not yet specified
2330
//				result = Plantae_STR_Taxa_infragen;
2331
//			} else if (rank.equals(Rank.)) { // not yet specified
2332
//				result = Plantae_STR_Taxa_infraspec;
2333
			} else {
2334
				//TODO Exception
2335
				logger.warn("Rank for Kingdom Plantae not yet supported in CDM: "+ rank.getLabel());
2336
				return null;
2337
			}
2338
		} else {
2339
			//TODO Exception
2340
			logger.warn("Kingdom not yet supported in CDM: "+ pesiKingdomId);
2341
			return null;
2342
		}
2343
		return result;
2344
	}
2345
	
2346
	/**
2347
	 * Returns the abbreviation for a given rank.
2348
	 * @param rank
2349
	 * @param pesiKingdomId
2350
	 * @return
2351
	 */
2352
	public static String rank2RankAbbrev(Rank rank, Integer pesiKingdomId) {
2353
		String result = null;
2354
		if (rank == null) {
2355
			return null;
2356
		}
2357
		
2358
		// We differentiate between Animalia and Plantae only for now.
2359
		if (pesiKingdomId == KINGDOM_ANIMALIA) {
2360
			if (rank.equals(Rank.SUBGENUS())) {
2361
				result = Animalia_Abbrev_Subgenus;
2362
			} else if (rank.equals(Rank.SPECIES())) {
2363
				result = Animalia_Abbrev_Species;
2364
			} else if (rank.equals(Rank.SUBSPECIES())) {
2365
				result = Animalia_Abbrev_Subspecies;
2366
//			} else if (rank.equals(Rank.)) { // not yet specified
2367
//				result = Animalia_STR_Natio;
2368
			} else if (rank.equals(Rank.VARIETY())) {
2369
				result = Animalia_Abbrev_Variety;
2370
			} else if (rank.equals(Rank.SUBVARIETY())) {
2371
				result = Animalia_Abbrev_Subvariety;
2372
			} else if (rank.equals(Rank.FORM())) {
2373
				result = Animalia_Abbrev_Forma;
2374
			} else {
2375
				//TODO Exception
2376
				logger.warn("Abbreviation for Rank of Kingdom Animalia not supported in CDM: "+ rank.getLabel());
2377
				return null;
2378
			}
2379
		} else if (pesiKingdomId == KINGDOM_PLANTAE) {
2380
			if (rank.equals(Rank.KINGDOM())) {
2381
				result = Plantae_Abbrev_Kingdom;
2382
			} else if (rank.equals(Rank.SUBKINGDOM())) {
2383
				result = Plantae_Abbrev_Subkingdom;
2384
			} else if (rank.equals(Rank.DIVISION())) {
2385
				result = Plantae_Abbrev_Division;
2386
			} else if (rank.equals(Rank.SUBDIVISION())) {
2387
				result = Plantae_Abbrev_Subdivision;
2388
			} else if (rank.equals(Rank.CLASS())) {
2389
				result = Plantae_Abbrev_Class;
2390
			} else if (rank.equals(Rank.SUBCLASS())) {
2391
				result = Plantae_Abbrev_Subclass;
2392
			} else if (rank.equals(Rank.ORDER())) {
2393
				result = Plantae_Abbrev_Order;
2394
			} else if (rank.equals(Rank.SUBORDER())) {
2395
				result = Plantae_Abbrev_Suborder;
2396
			} else if (rank.equals(Rank.FAMILY())) {
2397
				result = Plantae_Abbrev_Family;
2398
			} else if (rank.equals(Rank.SUBFAMILY())) {
2399
				result = Plantae_Abbrev_Subfamily;
2400
			} else if (rank.equals(Rank.TRIBE())) {
2401
				result = Plantae_Abbrev_Tribe;
2402
			} else if (rank.equals(Rank.SUBTRIBE())) {
2403
				result = Plantae_Abbrev_Subtribe;
2404
			} else if (rank.equals(Rank.GENUS())) {
2405
				result = Plantae_Abbrev_Genus;
2406
			} else if (rank.equals(Rank.SUBGENUS())) {
2407
				result = Plantae_Abbrev_Subgenus;
2408
			} else if (rank.equals(Rank.SECTION_BOTANY())) {
2409
				result = Plantae_Abbrev_Section;
2410
			} else if (rank.equals(Rank.SUBSECTION_BOTANY())) {
2411
				result = Plantae_Abbrev_Subsection;
2412
			} else if (rank.equals(Rank.SERIES())) {
2413
				result = Plantae_Abbrev_Series;
2414
			} else if (rank.equals(Rank.SUBSERIES())) {
2415
				result = Plantae_Abbrev_Subseries;
2416
//			} else if (rank.equals(Rank.)) { // not yet specified
2417
//				result = Plantae_Abbrev_Aggregate;
2418
//			} else if (rank.equals(Rank.)) { // not yet specified
2419
//				result = Plantae_Abbrev_Coll_Species;
2420
			} else if (rank.equals(Rank.SPECIES())) {
2421
				result = Plantae_Abbrev_Species;
2422
			} else if (rank.equals(Rank.SUBSPECIES())) {
2423
				result = Plantae_Abbrev_Subspecies;
2424
//			} else if (rank.equals(Rank.)) { // not yet specified
2425
//				result = Plantae_Abbrev_Proles;
2426
//			} else if (rank.equals(Rank.)) { // not yet specified
2427
//				result = Plantae_Abbrev_Race;
2428
			} else if (rank.equals(Rank.CONVAR())) {
2429
				result = Plantae_Abbrev_Convarietas;
2430
			} else if (rank.equals(Rank.VARIETY())) {
2431
				result = Plantae_Abbrev_Variety;
2432
			} else if (rank.equals(Rank.SUBVARIETY())) {
2433
				result = Plantae_Abbrev_Subvariety;
2434
			} else if (rank.equals(Rank.FORM())) {
2435
				result = Plantae_Abbrev_Forma;
2436
			} else if (rank.equals(Rank.SUBFORM())) {
2437
				result = Plantae_Abbrev_Subforma;
2438
//			} else if (rank.equals(Rank.)) { // not yet specified
2439
//				result = Plantae_Abbrev_Forma_spec;
2440
//			} else if (rank.equals(Rank.)) { // not yet specified
2441
//				result = Plantae_Abbrev_Taxa_infragen;
2442
//			} else if (rank.equals(Rank.)) { // not yet specified
2443
//				result = Plantae_Abbrev_Taxa_infraspec;
2444
			} else {
2445
				//TODO Exception
2446
				logger.warn("Abbreviation for Rank of Kingdom Plantae not supported in CDM: "+ rank.getLabel());
2447
				return null;
2448
			}
2449
		} else {
2450
			//TODO Exception
2451
			logger.warn("Kingdom not yet supported in CDM: "+ pesiKingdomId);
2452
			return null;
2453
		}
2454
		return result;
2455
	}
2456

    
2457
	/**
2458
	 * Returns the identifier of a PESI specific kingdom for a given CDM nomenclatural code.
2459
	 * @param nomenclaturalCode
2460
	 * @return KINGDOM_ANIMALIA for NomenclaturalCode.ICZN, KINGDOM_PLANTAE for NomenclaturalCode.ICBN
2461
	 */
2462
	public static Integer nomenClaturalCode2Kingdom(NomenclaturalCode nomenclaturalCode) {
2463
		Integer result = null;
2464
		// TODO: This needs to be refined. For now we differentiate between Animalia and Plantae only.
2465
		if (nomenclaturalCode.equals(NomenclaturalCode.ICZN)) {
2466
			result = KINGDOM_ANIMALIA;
2467
		} else if (nomenclaturalCode.equals(NomenclaturalCode.ICBN)) {
2468
			result = KINGDOM_PLANTAE;
2469
		}
2470
		return result;
2471
	}
2472
	
2473
	/**
2474
	 * Returns the RankId for a Rank.
2475
	 * @param rank
2476
	 * @return
2477
	 */
2478
	public static Integer rank2RankId (Rank rank, Integer pesiKingdomId) {
2479
		Integer result = null;
2480
		if (rank == null) {
2481
			return null;
2482
		}
2483
		
2484
		// We differentiate between Animalia and Plantae only for now.
2485
		if (pesiKingdomId == KINGDOM_ANIMALIA) {
2486
			if (rank.equals(Rank.KINGDOM())) {
2487
				result = Animalia_Kingdom;
2488
			} else if (rank.equals(Rank.SUBKINGDOM())) {
2489
				result = Animalia_Subkingdom;
2490
			} else if (rank.equals(Rank.SUPERPHYLUM())) {
2491
				result = Animalia_Superphylum;
2492
			} else if (rank.equals(Rank.PHYLUM())) {
2493
				result = Animalia_Phylum;
2494
			} else if (rank.equals(Rank.SUBPHYLUM())) {
2495
				result = Animalia_Subphylum;
2496
			} else if (rank.equals(Rank.INFRAPHYLUM())) {
2497
				result = Animalia_Infraphylum;
2498
			} else if (rank.equals(Rank.SUPERCLASS())) {
2499
				result = Animalia_Superclass;
2500
			} else if (rank.equals(Rank.CLASS())) {
2501
				result = Animalia_Class;
2502
			} else if (rank.equals(Rank.SUBCLASS())) {
2503
				result = Animalia_Subclass;
2504
			} else if (rank.equals(Rank.INFRACLASS())) {
2505
				result = Animalia_Infraclass;
2506
			} else if (rank.equals(Rank.SUPERORDER())) {
2507
				result = Animalia_Superorder;
2508
			} else if (rank.equals(Rank.ORDER())) {
2509
				result = Animalia_Order;
2510
			} else if (rank.equals(Rank.SUBORDER())) {
2511
				result = Animalia_Suborder;
2512
			} else if (rank.equals(Rank.INFRAORDER())) {
2513
				result = Animalia_Infraorder;
2514
			} else if (rank.equals(Rank.SECTION_ZOOLOGY())) {
2515
				result = Animalia_Section;
2516
			} else if (rank.equals(Rank.SUBSECTION_ZOOLOGY())) {
2517
				result = Animalia_Subsection;
2518
			} else if (rank.equals(Rank.SUPERFAMILY())) {
2519
				result = Animalia_Superfamily;
2520
			} else if (rank.equals(Rank.FAMILY())) {
2521
				result = Animalia_Family;
2522
			} else if (rank.equals(Rank.SUBFAMILY())) {
2523
				result = Animalia_Subfamily;
2524
			} else if (rank.equals(Rank.TRIBE())) {
2525
				result = Animalia_Tribe;
2526
			} else if (rank.equals(Rank.SUBTRIBE())) {
2527
				result = Animalia_Subtribe;
2528
			} else if (rank.equals(Rank.GENUS())) {
2529
				result = Animalia_Genus;
2530
			} else if (rank.equals(Rank.SUBGENUS())) {
2531
				result = Animalia_Subgenus;
2532
			} else if (rank.equals(Rank.SPECIES())) {
2533
				result = Animalia_Species;
2534
			} else if (rank.equals(Rank.SUBSPECIES())) {
2535
				result = Animalia_Subspecies;
2536
//			} else if (rank.equals(Rank.)) { // not yet specified
2537
//				result = Animalia_Natio;
2538
			} else if (rank.equals(Rank.VARIETY())) {
2539
				result = Animalia_Variety;
2540
			} else if (rank.equals(Rank.SUBVARIETY())) {
2541
				result = Animalia_Subvariety;
2542
			} else if (rank.equals(Rank.FORM())) {
2543
				result = Animalia_Forma;
2544
			} else {
2545
				//TODO Exception
2546
				logger.warn("Rank for Kingdom Animalia not yet supported in CDM: "+ rank.getLabel());
2547
				return null;
2548
			}
2549
		} else if (pesiKingdomId == KINGDOM_PLANTAE) {
2550
			if (rank.equals(Rank.KINGDOM())) {
2551
				result = Plantae_Kingdom;
2552
			} else if (rank.equals(Rank.SUBKINGDOM())) {
2553
				result = Plantae_Subkingdom;
2554
			} else if (rank.equals(Rank.DIVISION())) {
2555
				result = Plantae_Division;
2556
			} else if (rank.equals(Rank.SUBDIVISION())) {
2557
				result = Plantae_Subdivision;
2558
			} else if (rank.equals(Rank.CLASS())) {
2559
				result = Plantae_Class;
2560
			} else if (rank.equals(Rank.SUBCLASS())) {
2561
				result = Plantae_Subclass;
2562
			} else if (rank.equals(Rank.ORDER())) {
2563
				result = Plantae_Order;
2564
			} else if (rank.equals(Rank.SUBORDER())) {
2565
				result = Plantae_Suborder;
2566
			} else if (rank.equals(Rank.FAMILY())) {
2567
				result = Plantae_Family;
2568
			} else if (rank.equals(Rank.SUBFAMILY())) {
2569
				result = Plantae_Subfamily;
2570
			} else if (rank.equals(Rank.TRIBE())) {
2571
				result = Plantae_Tribe;
2572
			} else if (rank.equals(Rank.SUBTRIBE())) {
2573
				result = Plantae_Subtribe;
2574
			} else if (rank.equals(Rank.GENUS())) {
2575
				result = Plantae_Genus;
2576
			} else if (rank.equals(Rank.SUBGENUS())) {
2577
				result = Plantae_Subgenus;
2578
			} else if (rank.equals(Rank.SECTION_BOTANY())) {
2579
				result = Plantae_Section;
2580
			} else if (rank.equals(Rank.SUBSECTION_BOTANY())) {
2581
				result = Plantae_Subsection;
2582
			} else if (rank.equals(Rank.SERIES())) {
2583
				result = Plantae_Series;
2584
			} else if (rank.equals(Rank.SUBSERIES())) {
2585
				result = Plantae_Subseries;
2586
//			} else if (rank.equals(Rank.)) { // not yet specified
2587
//				result = Plantae_Aggregate;
2588
//			} else if (rank.equals(Rank.)) { // not yet specified
2589
//				result = Plantae_Coll_Species;
2590
			} else if (rank.equals(Rank.SPECIES())) {
2591
				result = Plantae_Species;
2592
			} else if (rank.equals(Rank.SUBSPECIES())) {
2593
				result = Plantae_Subspecies;
2594
//			} else if (rank.equals(Rank.)) { // not yet specified
2595
//				result = Plantae_Proles;
2596
//			} else if (rank.equals(Rank.)) { // not yet specified
2597
//				result = Plantae_Race;
2598
			} else if (rank.equals(Rank.CONVAR())) {
2599
				result = Plantae_Convarietas;
2600
			} else if (rank.equals(Rank.VARIETY())) {
2601
				result = Plantae_Variety;
2602
			} else if (rank.equals(Rank.SUBVARIETY())) {
2603
				result = Plantae_Subvariety;
2604
			} else if (rank.equals(Rank.FORM())) {
2605
				result = Plantae_Forma;
2606
			} else if (rank.equals(Rank.SUBFORM())) {
2607
				result = Plantae_Subforma;
2608
//			} else if (rank.equals(Rank.)) { // not yet specified
2609
//				result = Plantae_Forma_spec;
2610
//			} else if (rank.equals(Rank.)) { // not yet specified
2611
//				result = Plantae_Taxa_infragen;
2612
//			} else if (rank.equals(Rank.)) { // not yet specified
2613
//				result = Plantae_Taxa_infraspec;
2614
			} else {
2615
				//TODO Exception
2616
				logger.warn("Rank for Kingdom Plantae not yet supported in CDM: "+ rank.getLabel());
2617
				return null;
2618
			}
2619
		} else {
2620
			//TODO Exception
2621
			logger.warn("Kingdom not yet supported in CDM: "+ pesiKingdomId);
2622
			return null;
2623
		}
2624
		return result;
2625
	}
2626

    
2627
	/**
2628
	 * 
2629
	 * @param nameTypeDesignationStatus
2630
	 * @return
2631
	 */
2632
	public static Integer nameTypeDesignationStatus2TypeDesignationStatusId(NameTypeDesignationStatus nameTypeDesignationStatus) {
2633
		if (nameTypeDesignationStatus == null) {
2634
			return null;
2635
		}
2636
		if (nameTypeDesignationStatus.equals(NameTypeDesignationStatus.ORIGINAL_DESIGNATION())) {
2637
			return TYPE_BY_ORIGINAL_DESIGNATION;
2638
		} else if (nameTypeDesignationStatus.equals(NameTypeDesignationStatus.SUBSEQUENT_DESIGNATION())) {
2639
			return TYPE_BY_SUBSEQUENT_DESIGNATION;
2640
		} else if (nameTypeDesignationStatus.equals(NameTypeDesignationStatus.MONOTYPY())) {
2641
			return TYPE_BY_MONOTYPY;
2642
		} else {
2643
			//TODO Figure out a way to handle this gracefully.
2644
			logger.warn("Name Type Designation Status not yet supported in PESI: "+ nameTypeDesignationStatus.getLabel());
2645
			return null;
2646
		}
2647

    
2648
	}
2649

    
2650
	/**
2651
	 * 
2652
	 * @param nameTypeDesignationStatus
2653
	 * @return
2654
	 */
2655
	public static String nameTypeDesignationStatus2TypeDesignationStatusCache(NameTypeDesignationStatus nameTypeDesignationStatus) {
2656
		if (nameTypeDesignationStatus == null) {
2657
			return null;
2658
		}
2659
		if (nameTypeDesignationStatus.equals(NameTypeDesignationStatus.ORIGINAL_DESIGNATION())) {
2660
			return TYPE_STR_BY_ORIGINAL_DESIGNATION;
2661
		} else if (nameTypeDesignationStatus.equals(NameTypeDesignationStatus.SUBSEQUENT_DESIGNATION())) {
2662
			return TYPE_STR_BY_SUBSEQUENT_DESIGNATION;
2663
		} else if (nameTypeDesignationStatus.equals(NameTypeDesignationStatus.MONOTYPY())) {
2664
			return TYPE_STR_BY_MONOTYPY;
2665
		} else {
2666
			//TODO Figure out a way to handle this gracefully.
2667
			logger.warn("Name Type Designation Status not yet supported in PESI: "+ nameTypeDesignationStatus.getLabel());
2668
			return null;
2669
		}
2670

    
2671
	}
2672

    
2673
	/**
2674
	 * 
2675
	 * @param taxonBase
2676
	 * @return
2677
	 */
2678
	public static Integer taxonBase2statusFk (TaxonBase<?> taxonBase){
2679
		if (taxonBase == null){return null;}		
2680
		if (taxonBase.isInstanceOf(Taxon.class)){
2681
			return T_STATUS_ACCEPTED;
2682
		}else if (taxonBase.isInstanceOf(Synonym.class)){
2683
			return T_STATUS_SYNONYM;
2684
		}else{
2685
			logger.warn("Unknown ");
2686
			return T_STATUS_UNRESOLVED;
2687
		}
2688
		//TODO 
2689
//		public static int T_STATUS_PARTIAL_SYN = 3;
2690
//		public static int T_STATUS_PRO_PARTE_SYN = 4;
2691
//		public static int T_STATUS_UNRESOLVED = 5;
2692
//		public static int T_STATUS_ORPHANED = 6;
2693
	}
2694

    
2695
	/**
2696
	 * 
2697
	 * @param taxonBase
2698
	 * @return
2699
	 */
2700
	public static String taxonBase2statusCache (TaxonBase<?> taxonBase){
2701
		if (taxonBase == null){return null;}
2702
		if (taxonBase.isInstanceOf(Taxon.class)){
2703
			return T_STATUS_STR_ACCEPTED;
2704
		}else if (taxonBase.isInstanceOf(Synonym.class)){
2705
			return T_STATUS_STR_SYNONYM;
2706
		}else{
2707
			logger.warn("Unknown ");
2708
			return T_STATUS_STR_UNRESOLVED;
2709
		}
2710
		//TODO 
2711
//		public static int T_STATUS_STR_PARTIAL_SYN = 3;
2712
//		public static int T_STATUS_STR_PRO_PARTE_SYN = 4;
2713
//		public static int T_STATUS_STR_UNRESOLVED = 5;
2714
//		public static int T_STATUS_STR_ORPHANED = 6;
2715
	}
2716
		
2717
	/**
2718
	 * Returns the {@link SourceCategory SourceCategory} representation of the given {@link ReferenceType ReferenceType} in PESI.
2719
	 * @param reference The {@link ReferenceBase ReferenceBase}.
2720
	 * @return The {@link SourceCategory SourceCategory} representation in PESI.
2721
	 */
2722
	public static Integer reference2SourceCategoryFK(ReferenceBase<?> reference) {
2723
		if (reference == null){
2724
			return null;
2725
		} else if (reference.getType().equals(ReferenceType.Article)) {
2726
			return REF_ARTICLE_IN_PERIODICAL;
2727
		} else if (reference instanceof ISectionBase) {
2728
			return REF_PART_OF_OTHER;
2729
		} else if (reference.getType().equals(ReferenceType.Book)) {
2730
			return REF_BOOK;
2731
		} else if (reference.getType().equals(ReferenceType.Database)) {
2732
			return REF_DATABASE;
2733
		} else if (reference.getType().equals(ReferenceType.WebPage)) {
2734
			return REF_WEBSITE;
2735
		} else if (reference.getType().equals(ReferenceType.CdDvd)) {
2736
			return REF_NOT_APPLICABLE;
2737
		} else if (reference.getType().equals(ReferenceType.Journal)) {
2738
			return REF_JOURNAL;
2739
		} else if (reference.getType().equals(ReferenceType.Generic)) {
2740
			return REF_UNRESOLVED;
2741
		} else if (reference.getType().equals(ReferenceType.PrintSeries)) {
2742
			return REF_PUBLISHED;
2743
		} else if (reference.getType().equals(ReferenceType.Proceedings)) {
2744
			return REF_PUBLISHED;
2745
		} else if (reference.getType().equals(ReferenceType.Patent)) {
2746
			return REF_NOT_APPLICABLE;
2747
		} else if (reference.getType().equals(ReferenceType.PersonalCommunication)) {
2748
			return REF_INFORMAL;
2749
		} else if (reference.getType().equals(ReferenceType.Report)) {
2750
			return REF_NOT_APPLICABLE;
2751
		} else if (reference.getType().equals(ReferenceType.Thesis)) {
2752
			return REF_NOT_APPLICABLE;
2753
		} else {
2754
			//TODO Figure out a way to handle this gracefully.
2755
			logger.warn("Reference type not yet supported in PESI: "+ reference.getClass().getSimpleName());
2756
			return null;
2757
		}
2758
	}
2759
	
2760
	/**
2761
	 * Returns the {@link SourceCategoryCache SourceCategoryCache}.
2762
	 * @param reference The {@link ReferenceBase ReferenceBase}.
2763
	 * @return The {@link SourceCategoryCache SourceCategoryCache}.
2764
	 */
2765
	public static String getSourceCategoryCache(ReferenceBase<?> reference) {
2766
		if (reference == null){
2767
			return null;
2768
		} else if (reference.getType().equals(ReferenceType.Article)) {
2769
			return REF_STR_ARTICLE_IN_PERIODICAL;
2770
		} else if (reference instanceof ISectionBase) {
2771
			return REF_STR_PART_OF_OTHER;
2772
		} else if (reference.getType().equals(ReferenceType.Book)) {
2773
			return REF_STR_BOOK;
2774
		} else if (reference.getType().equals(ReferenceType.Database)) {
2775
			return REF_STR_DATABASE;
2776
		} else if (reference.getType().equals(ReferenceType.WebPage)) {
2777
			return REF_STR_WEBSITE;
2778
		} else if (reference.getType().equals(ReferenceType.CdDvd)) {
2779
			return REF_STR_NOT_APPLICABLE;
2780
		} else if (reference.getType().equals(ReferenceType.Journal)) {
2781
			return REF_STR_JOURNAL;
2782
		} else if (reference.getType().equals(ReferenceType.Generic)) {
2783
			return REF_STR_UNRESOLVED;
2784
		} else if (reference.getType().equals(ReferenceType.PrintSeries)) {
2785
			return REF_STR_PUBLISHED;
2786
		} else if (reference.getType().equals(ReferenceType.Proceedings)) {
2787
			return REF_STR_PUBLISHED;
2788
		} else if (reference.getType().equals(ReferenceType.Patent)) {
2789
			return REF_STR_NOT_APPLICABLE;
2790
		} else if (reference.getType().equals(ReferenceType.PersonalCommunication)) {
2791
			return REF_STR_INFORMAL;
2792
		} else if (reference.getType().equals(ReferenceType.Report)) {
2793
			return REF_STR_NOT_APPLICABLE;
2794
		} else if (reference.getType().equals(ReferenceType.Thesis)) {
2795
			return REF_STR_NOT_APPLICABLE;
2796
		} else {
2797
			//TODO Figure out a way to handle this gracefully.
2798
			logger.warn("Reference type not yet supported in PESI: "+ reference.getClass().getSimpleName());
2799
			return null;
2800
		}
2801
	}
2802

    
2803
	/**
2804
	 * 
2805
	 * @param status
2806
	 * @return
2807
	 */
2808
	public static String nomStatus2NomStatusCache(NomenclaturalStatusType status) {
2809
		if (status == null){
2810
			return null;
2811
		}
2812
		if (status.equals(NomenclaturalStatusType.INVALID())) {return NAME_ST_STR_NOM_INVAL;
2813
		}else if (status.equals(NomenclaturalStatusType.ILLEGITIMATE())) {return NAME_ST_STR_NOM_ILLEG;
2814
		}else if (status.equals(NomenclaturalStatusType.NUDUM())) {return NAME_ST_STR_NOM_NUD;
2815
		}else if (status.equals(NomenclaturalStatusType.REJECTED())) {return NAME_ST_STR_NOM_REJ;
2816
		}else if (status.equals(NomenclaturalStatusType.REJECTED_PROP())) {return NAME_ST_STR_NOM_REJ_PROP;
2817
		}else if (status.equals(NomenclaturalStatusType.UTIQUE_REJECTED())) {return NAME_ST_STR_NOM_UTIQUE_REJ;
2818
		}else if (status.equals(NomenclaturalStatusType.UTIQUE_REJECTED_PROP())) {return NAME_ST_STR_NOM_UTIQUE_REJ_PROP;
2819
		}else if (status.equals(NomenclaturalStatusType.CONSERVED())) {return NAME_ST_STR_NOM_CONS;
2820
	
2821
		}else if (status.equals(NomenclaturalStatusType.CONSERVED_PROP())) {return NAME_ST_STR_NOM_CONS_PROP;
2822
		}else if (status.equals(NomenclaturalStatusType.ORTHOGRAPHY_CONSERVED())) {return NAME_ST_STR_ORTH_CONS;
2823
		}else if (status.equals(NomenclaturalStatusType.ORTHOGRAPHY_CONSERVED_PROP())) {return NAME_ST_STR_ORTH_CONS_PROP;
2824
		}else if (status.equals(NomenclaturalStatusType.SUPERFLUOUS())) {return NAME_ST_STR_NOM_SUPERFL;
2825
		}else if (status.equals(NomenclaturalStatusType.AMBIGUOUS())) {return NAME_ST_STR_NOM_AMBIG;
2826
		}else if (status.equals(NomenclaturalStatusType.PROVISIONAL())) {return NAME_ST_STR_NOM_PROVIS;
2827
		}else if (status.equals(NomenclaturalStatusType.DOUBTFUL())) {return NAME_ST_STR_NOM_DUB;
2828
		}else if (status.equals(NomenclaturalStatusType.NOVUM())) {return NAME_ST_STR_NOM_NOV;
2829
	
2830
		}else if (status.equals(NomenclaturalStatusType.CONFUSUM())) {return NAME_ST_STR_NOM_CONFUS;
2831
		}else if (status.equals(NomenclaturalStatusType.ALTERNATIVE())) {return NAME_ST_STR_NOM_ALTERN;
2832
		}else if (status.equals(NomenclaturalStatusType.COMBINATION_INVALID())) {return NAME_ST_STR_COMB_INVAL;
2833
		}else if (status.equals(NomenclaturalStatusType.LEGITIMATE())) {return NAME_ST_STR_LEGITIMATE;
2834
		
2835
		// The following are non-existent in CDM
2836
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_STR_COMB_INED;
2837
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_STR_COMB_AND_STAT_INED;
2838
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_STR_NOM_AND_ORTH_CONS;
2839
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_STR_NOM_NOV_INED;
2840
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_STR_SP_NOV_INED;
2841
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_STR_ALTERNATE_REPRESENTATION;
2842
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_STR_TEMPORARY_NAME;
2843
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_STR_SPECIES_INQUIRENDA;
2844

    
2845
		//TODO
2846
		}else {
2847
			//TODO Exception
2848
			logger.warn("NomStatus type not yet supported by PESI export: "+ status);
2849
		return null;
2850
	}
2851
	}
2852
	
2853
	/**
2854
	 * 
2855
	 * @param status
2856
	 * @return
2857
	 */
2858
	public static Integer nomStatus2nomStatusFk (NomenclaturalStatusType status){
2859
		if (status == null){
2860
			return null;
2861
		}
2862
		if (status.equals(NomenclaturalStatusType.INVALID())) {return NAME_ST_NOM_INVAL;
2863
		}else if (status.equals(NomenclaturalStatusType.ILLEGITIMATE())) {return NAME_ST_NOM_ILLEG;
2864
		}else if (status.equals(NomenclaturalStatusType.NUDUM())) {return NAME_ST_NOM_NUD;
2865
		}else if (status.equals(NomenclaturalStatusType.REJECTED())) {return NAME_ST_NOM_REJ;
2866
		}else if (status.equals(NomenclaturalStatusType.REJECTED_PROP())) {return NAME_ST_NOM_REJ_PROP;
2867
		}else if (status.equals(NomenclaturalStatusType.UTIQUE_REJECTED())) {return NAME_ST_NOM_UTIQUE_REJ;
2868
		}else if (status.equals(NomenclaturalStatusType.UTIQUE_REJECTED_PROP())) {return NAME_ST_NOM_UTIQUE_REJ_PROP;
2869
		}else if (status.equals(NomenclaturalStatusType.CONSERVED())) {return NAME_ST_NOM_CONS;
2870
		
2871
		}else if (status.equals(NomenclaturalStatusType.CONSERVED_PROP())) {return NAME_ST_NOM_CONS_PROP;
2872
		}else if (status.equals(NomenclaturalStatusType.ORTHOGRAPHY_CONSERVED())) {return NAME_ST_ORTH_CONS;
2873
		}else if (status.equals(NomenclaturalStatusType.ORTHOGRAPHY_CONSERVED_PROP())) {return NAME_ST_ORTH_CONS_PROP;
2874
		}else if (status.equals(NomenclaturalStatusType.SUPERFLUOUS())) {return NAME_ST_NOM_SUPERFL;
2875
		}else if (status.equals(NomenclaturalStatusType.AMBIGUOUS())) {return NAME_ST_NOM_AMBIG;
2876
		}else if (status.equals(NomenclaturalStatusType.PROVISIONAL())) {return NAME_ST_NOM_PROVIS;
2877
		}else if (status.equals(NomenclaturalStatusType.DOUBTFUL())) {return NAME_ST_NOM_DUB;
2878
		}else if (status.equals(NomenclaturalStatusType.NOVUM())) {return NAME_ST_NOM_NOV;
2879
		
2880
		}else if (status.equals(NomenclaturalStatusType.CONFUSUM())) {return NAME_ST_NOM_CONFUS;
2881
		}else if (status.equals(NomenclaturalStatusType.ALTERNATIVE())) {return NAME_ST_NOM_ALTERN;
2882
		}else if (status.equals(NomenclaturalStatusType.COMBINATION_INVALID())) {return NAME_ST_COMB_INVAL;
2883
		}else if (status.equals(NomenclaturalStatusType.LEGITIMATE())) {return NAME_ST_LEGITIMATE;
2884
		
2885
		// The following are non-existent in CDM
2886
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_COMB_INED;
2887
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_COMB_AND_STAT_INED;
2888
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_NOM_AND_ORTH_CONS;
2889
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_NOM_NOV_INED;
2890
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_SP_NOV_INED;
2891
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_ALTERNATE_REPRESENTATION;
2892
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_TEMPORARY_NAME;
2893
//		}else if (status.equals(NomenclaturalStatusType.)) {return NAME_ST_SPECIES_INQUIRENDA;
2894

    
2895
		//TODO
2896
		}else {
2897
			//TODO Exception
2898
			logger.warn("NomStatus type not yet supported by PESI export: "+ status);
2899
			return null;
2900
		}
2901
	}
2902
	
2903
	/**
2904
	 * Returns the RelTaxonQualifierCache for a given taxonRelation.
2905
	 * @param relation
2906
	 * @return
2907
	 */
2908
	public static String taxonRelation2RelTaxonQualifierCache(RelationshipBase<?,?,?> relation){
2909
		if (relation == null) {
2910
			return null;
2911
		}
2912
		RelationshipTermBase<?> type = relation.getType();
2913
		if (type.equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
2914
			return STR_IS_TAXONOMICALLY_INCLUDED_IN;
2915
		} else if (type.equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())) {
2916
			return STR_IS_MISAPPLIED_NAME_FOR;
2917
		} else if (type.equals(SynonymRelationshipType.SYNONYM_OF())) {
2918
			return STR_IS_SYNONYM_OF;
2919
		} else if (type.equals(SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF())) {
2920
			return STR_IS_HOMOTYPIC_SYNONYM_OF;
2921
		} else if (type.equals(SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF())) {
2922
			return STR_IS_HETEROTYPIC_SYNONYM_OF;
2923
		} else if (type.equals(SynonymRelationshipType.INFERRED_EPITHET_OF())) {
2924
			return STR_IS_INFERRED_EPITHET_FOR;
2925
		} else if (type.equals(SynonymRelationshipType.INFERRED_GENUS_OF())) {
2926
			return STR_IS_INFERRED_GENUS_FOR;
2927
		} else if (type.equals(SynonymRelationshipType.POTENTIAL_COMBINATION_OF())) {
2928
			return STR_IS_POTENTIAL_COMBINATION_FOR;
2929
		} else if (type.equals(NameRelationshipType.BASIONYM())) {
2930
			return STR_IS_BASIONYM_FOR;
2931
		} else if (type.equals(NameRelationshipType.LATER_HOMONYM())) {
2932
			return STR_IS_LATER_HOMONYM_OF;
2933
		} else if (type.equals(NameRelationshipType.REPLACED_SYNONYM())) {
2934
			return STR_IS_REPLACED_SYNONYM_FOR;
2935
		} else if (type.equals(NameRelationshipType.VALIDATED_BY_NAME())) {
2936
			return STR_IS_VALIDATION_OF;
2937
		} else if (type.equals(NameRelationshipType.LATER_VALIDATED_BY_NAME())) {
2938
			return STR_IS_LATER_VALIDATION_OF;
2939
		} else if (type.equals(NameRelationshipType.CONSERVED_AGAINST())) {
2940
			return STR_IS_CONSERVED_AGAINST;
2941
		} else if (type.equals(NameRelationshipType.TREATED_AS_LATER_HOMONYM())) {
2942
			return STR_IS_TREATED_AS_LATER_HOMONYM_OF;
2943
		} else if (type.equals(NameRelationshipType.ORTHOGRAPHIC_VARIANT())) {
2944
			return STR_IS_ORTHOGRAPHIC_VARIANT_OF;
2945
		} else if (type.equals(NameRelationshipType.ALTERNATIVE_NAME())) {
2946
			return STR_IS_ALTERNATIVE_NAME_FOR;
2947
		} else {
2948
			logger.warn("No equivalent RelationshipType found in datawarehouse for: " + type.getTitleCache());
2949
		}
2950
			
2951
		// The following have no equivalent attribute in CDM
2952
//		IS_TYPE_OF
2953
//		IS_CONSERVED_TYPE_OF
2954
//		IS_REJECTED_TYPE_OF
2955
//		IS_FIRST_PARENT_OF
2956
//		IS_SECOND_PARENT_OF
2957
//		IS_FEMALE_PARENT_OF
2958
//		IS_MALE_PARENT_OF
2959
//		IS_REJECTED_IN_FAVOUR_OF
2960
//		HAS_SAME_TYPE_AS
2961
//		IS_LECTOTYPE_OF
2962
//		TYPE_NOT_DESIGNATED
2963
//		IS_PRO_PARTE_SYNONYM_OF
2964
//		IS_PARTIAL_SYNONYM_OF
2965
//		IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF
2966
//		IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF
2967
//		IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF
2968
//		IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF
2969

    
2970
		return null;
2971
	}
2972
	
2973
	/**
2974
	 * Returns the RelTaxonQualifierFk for a TaxonRelation.
2975
	 * @param relation
2976
	 * @return
2977
	 */
2978
	public static Integer taxonRelation2RelTaxonQualifierFk(RelationshipBase<?,?,?> relation) {
2979
		if (relation == null) {
2980
			return null;
2981
		}
2982
		RelationshipTermBase<?> type = relation.getType();
2983
		if (type.equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
2984
			return IS_TAXONOMICALLY_INCLUDED_IN;
2985
		} else if (type.equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())) {
2986
			return IS_MISAPPLIED_NAME_FOR;
2987
		} else if (type.equals(SynonymRelationshipType.SYNONYM_OF())) {
2988
			return IS_SYNONYM_OF;
2989
		} else if (type.equals(SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF())) {
2990
			return IS_HOMOTYPIC_SYNONYM_OF;
2991
		} else if (type.equals(SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF())) {
2992
			return IS_HETEROTYPIC_SYNONYM_OF;
2993
		} else if (type.equals(SynonymRelationshipType.INFERRED_EPITHET_OF())) {
2994
			return IS_INFERRED_EPITHET_FOR;
2995
		} else if (type.equals(SynonymRelationshipType.INFERRED_GENUS_OF())) {
2996
			return IS_INFERRED_GENUS_FOR;
2997
		} else if (type.equals(SynonymRelationshipType.POTENTIAL_COMBINATION_OF())) {
2998
			return IS_POTENTIAL_COMBINATION_FOR;
2999
		} else if (type.equals(NameRelationshipType.BASIONYM())) {
3000
			return IS_BASIONYM_FOR;
3001
		} else if (type.equals(NameRelationshipType.LATER_HOMONYM())) {
3002
			return IS_LATER_HOMONYM_OF;
3003
		} else if (type.equals(NameRelationshipType.REPLACED_SYNONYM())) {
3004
			return IS_REPLACED_SYNONYM_FOR;
3005
		} else if (type.equals(NameRelationshipType.VALIDATED_BY_NAME())) {
3006
			return IS_VALIDATION_OF;
3007
		} else if (type.equals(NameRelationshipType.LATER_VALIDATED_BY_NAME())) {
3008
			return IS_LATER_VALIDATION_OF;
3009
		} else if (type.equals(NameRelationshipType.CONSERVED_AGAINST())) {
3010
			return IS_CONSERVED_AGAINST;
3011
		} else if (type.equals(NameRelationshipType.TREATED_AS_LATER_HOMONYM())) {
3012
			return IS_TREATED_AS_LATER_HOMONYM_OF;
3013
		} else if (type.equals(NameRelationshipType.ORTHOGRAPHIC_VARIANT())) {
3014
			return IS_ORTHOGRAPHIC_VARIANT_OF;
3015
		} else if (type.equals(NameRelationshipType.ALTERNATIVE_NAME())) {
3016
			return IS_ALTERNATIVE_NAME_FOR;
3017
		} else {
3018
			logger.warn("No equivalent RelationshipType found in datawarehouse for: " + type.getTitleCache());
3019
		}
3020

    
3021
		// The following have no equivalent attribute in CDM
3022
//		IS_TYPE_OF
3023
//		IS_CONSERVED_TYPE_OF
3024
//		IS_REJECTED_TYPE_OF
3025
//		IS_FIRST_PARENT_OF
3026
//		IS_SECOND_PARENT_OF
3027
//		IS_FEMALE_PARENT_OF
3028
//		IS_MALE_PARENT_OF
3029
//		IS_REJECTED_IN_FAVOUR_OF
3030
//		HAS_SAME_TYPE_AS
3031
//		IS_LECTOTYPE_OF
3032
//		TYPE_NOT_DESIGNATED
3033
//		IS_PRO_PARTE_SYNONYM_OF
3034
//		IS_PARTIAL_SYNONYM_OF
3035
//		IS_PRO_PARTE_AND_HOMOTYPIC_SYNONYM_OF
3036
//		IS_PRO_PARTE_AND_HETEROTYPIC_SYNONYM_OF
3037
//		IS_PARTIAL_AND_HOMOTYPIC_SYNONYM_OF
3038
//		IS_PARTIAL_AND_HETEROTYPIC_SYNONYM_OF
3039

    
3040
		return null;
3041
	}
3042
}
(14-14/14)