1
|
// $Id$
|
2
|
/**
|
3
|
* Copyright (C) 2007 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
|
|
11
|
package eu.etaxonomy.cdm.io.globis;
|
12
|
|
13
|
import java.util.HashSet;
|
14
|
import java.util.Set;
|
15
|
import java.util.UUID;
|
16
|
|
17
|
import org.apache.commons.lang.StringUtils;
|
18
|
import org.apache.log4j.Logger;
|
19
|
|
20
|
import eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase;
|
21
|
import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;
|
22
|
import eu.etaxonomy.cdm.model.common.ExtensionType;
|
23
|
import eu.etaxonomy.cdm.model.description.Feature;
|
24
|
import eu.etaxonomy.cdm.model.location.NamedArea;
|
25
|
import eu.etaxonomy.cdm.model.location.TdwgArea;
|
26
|
import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;
|
27
|
|
28
|
/**
|
29
|
* @author a.mueller
|
30
|
* @created 01.03.2010
|
31
|
* @version 1.0
|
32
|
*/
|
33
|
public final class GlobisTransformer extends InputTransformerBase {
|
34
|
private static final Logger logger = Logger.getLogger(GlobisTransformer.class);
|
35
|
|
36
|
|
37
|
//marker types
|
38
|
public static final UUID uuidCheckedMarkerType = UUID.fromString("f2a7926f-def1-49a6-b642-9b81e6b1e35c");
|
39
|
public static final UUID uuidOldRecordMarkerType = UUID.fromString("8616edc5-00d4-40ca-aca4-d48ec32231e9");
|
40
|
public static final UUID uuidNotAvailableMarkerType = UUID.fromString("6931e584-6fc2-44ab-9084-e6452f8cd5d1");
|
41
|
|
42
|
//extension types
|
43
|
public static final UUID uuidExtTypeNotAvailableReason = UUID.fromString("d7dd5632-8c65-4058-b804-d1291560ac4c");
|
44
|
|
45
|
public NamedArea getNamedAreaByKey(String area) {
|
46
|
Set<String> unhandledCountries = new HashSet<String>();
|
47
|
|
48
|
if (StringUtils.isBlank(area)){return null;
|
49
|
}else if (area.equals("Argentina")){return WaterbodyOrCountry.ARGENTINAARGENTINEREPUBLIC();
|
50
|
}else if (area.equals("Bolivia")){return WaterbodyOrCountry.BOLIVIAREPUBLICOF();
|
51
|
}else if (area.equals("Ghana")){return WaterbodyOrCountry.GHANAREPUBLICOF();
|
52
|
}else if (area.equals("Angola")){return WaterbodyOrCountry.ANGOLAREPUBLICOF();
|
53
|
}else if (area.equals("Tanzania")){return WaterbodyOrCountry.TANZANIAUNITEDREPUBLICOF();
|
54
|
}else if (area.equals("China")){return WaterbodyOrCountry.CHINAPEOPLESREPUBLICOF();
|
55
|
}else if (area.equals("Brunei")){return WaterbodyOrCountry.BRUNEIDARUSSALAM();
|
56
|
}else if (area.equals("Australia")){return WaterbodyOrCountry.AUSTRALIACOMMONWEALTHOF();
|
57
|
}else if (area.equals("Indonesia")){return WaterbodyOrCountry.INDONESIAREPUBLICOF();
|
58
|
}else if (area.equals("Philippines")){return WaterbodyOrCountry.PHILIPPINESREPUBLICOFTHE();
|
59
|
}else if (area.equals("Mongolia")){return WaterbodyOrCountry.MONGOLIAMONGOLIANPEOPLESREPUBLIC();
|
60
|
}else if (area.equals("Russia")){return WaterbodyOrCountry.RUSSIANFEDERATION();
|
61
|
}else if (area.equals("France")){return WaterbodyOrCountry.FRANCEFRENCHREPUBLIC();
|
62
|
}else if (area.equals("Poland")){return WaterbodyOrCountry.POLANDPOLISHPEOPLESREPUBLIC();
|
63
|
}else if (area.equals("Brazil")){return WaterbodyOrCountry.BRAZILFEDERATIVEREPUBLICOF();
|
64
|
|
65
|
}else if (area.equals("Cuba")){return WaterbodyOrCountry.BRAZILFEDERATIVEREPUBLICOF();
|
66
|
}else if (area.equals("Guatemala")){return WaterbodyOrCountry.GUATEMALAREPUBLICOF();
|
67
|
}else if (area.equals("Colombia")){return WaterbodyOrCountry.COLOMBIAREPUBLICOF();
|
68
|
}else if (area.equals("India")){return WaterbodyOrCountry.INDIAREPUBLICOF();
|
69
|
|
70
|
}else if (area.equals("Mexico")){return WaterbodyOrCountry.MEXICOUNITEDMEXICANSTATES();
|
71
|
}else if (area.equals("Peru")){return WaterbodyOrCountry.PERUREPUBLICOF();
|
72
|
}else if (area.equals("Ecuador")){return WaterbodyOrCountry.ECUADORREPUBLICOF();
|
73
|
}else if (area.equals("Venezuela")){return WaterbodyOrCountry.VENEZUELABOLIVARIANREPUBLICOF();
|
74
|
}else if (area.equals("Guyana")){return WaterbodyOrCountry.GUYANAREPUBLICOF();
|
75
|
}else if (area.equals("Panama")){return WaterbodyOrCountry.PANAMAREPUBLICOF();
|
76
|
|
77
|
}else if (area.equals("Paraguay")){return WaterbodyOrCountry.PARAGUAYREPUBLICOF();
|
78
|
}else if (area.equals("Suriname")){return WaterbodyOrCountry.SURINAMEREPUBLICOF();
|
79
|
}else if (area.equals("Costa Rica")){return WaterbodyOrCountry.COSTARICAREPUBLICOF();
|
80
|
}else if (area.equals("Ivory Coast")){return WaterbodyOrCountry.COTEDIVOIREIVORYCOASTREPUBLICOFTHE();
|
81
|
|
82
|
}else if (area.equals("Benin")){return WaterbodyOrCountry.BENINPEOPLESREPUBLICOF();
|
83
|
}else if (area.equalsIgnoreCase("Kenya")){return WaterbodyOrCountry.KENYAREPUBLICOF();
|
84
|
}else if (area.equals("Uganda")){return WaterbodyOrCountry.UGANDAREPUBLICOF();
|
85
|
}else if (area.equals("Zambia")){return WaterbodyOrCountry.ZAMBIAREPUBLICOF();
|
86
|
}else if (area.equals("Rwanda")){return WaterbodyOrCountry.RWANDARWANDESEREPUBLIC();
|
87
|
}else if (area.equals("South Africa")){return WaterbodyOrCountry.SOUTHAFRICAREPUBLICOF();
|
88
|
}else if (area.equals("Botswana")){return WaterbodyOrCountry.BOTSWANAREPUBLICOF();
|
89
|
}else if (area.equals("Burundi")){return WaterbodyOrCountry.BURUNDIREPUBLICOF();
|
90
|
}else if (area.equals("Cameroon")){return WaterbodyOrCountry.CAMEROONUNITEDREPUBLICOF();
|
91
|
|
92
|
}else if (area.equals("Congo")){return WaterbodyOrCountry.CONGOPEOPLESREPUBLICOF();
|
93
|
}else if (area.equals("Zaire")){return WaterbodyOrCountry.CONGODEMOCRATICREPUBLICOF();
|
94
|
}else if (area.equals("Equatorial Guinea")){return WaterbodyOrCountry.EQUATORIALGUINEAREPUBLICOF();
|
95
|
}else if (area.equals("Gabon")){return WaterbodyOrCountry.GABONGABONESEREPUBLIC();
|
96
|
}else if (area.equals("Liberia")){return WaterbodyOrCountry.LIBERIAREPUBLICOF();
|
97
|
|
98
|
}else if (area.equals("Togo")){return WaterbodyOrCountry.TOGOTOGOLESEREPUBLIC();
|
99
|
}else if (area.equals("Guinea")){return WaterbodyOrCountry.GUINEAREVOLUTIONARYPEOPLESREPCOF();
|
100
|
}else if (area.equals("Guinea-Bissau")){return WaterbodyOrCountry.GUINEABISSAUREPUBLICOF();
|
101
|
|
102
|
}else if (area.equals("Malawi")){return WaterbodyOrCountry.MALAWIREPUBLICOF();
|
103
|
}else if (area.equals("Mozambique")){return WaterbodyOrCountry.MOZAMBIQUEPEOPLESREPUBLICOF();
|
104
|
}else if (area.equals("Nigeria")){return WaterbodyOrCountry.NIGERIAFEDERALREPUBLICOF();
|
105
|
}else if (area.equals("Senegal")){return WaterbodyOrCountry.SENEGALREPUBLICOF();
|
106
|
}else if (area.equals("Sierra Leone")){return WaterbodyOrCountry.SIERRALEONEREPUBLICOF();
|
107
|
}else if (area.equals("Sudan")){return WaterbodyOrCountry.SUDANDEMOCRATICREPUBLICOFTHE();
|
108
|
}else if (area.equals("Madagascar")){return WaterbodyOrCountry.MADAGASCARREPUBLICOF();
|
109
|
}else if (area.equals("Comoros")){return WaterbodyOrCountry.COMOROSUNIONOFTHE();
|
110
|
|
111
|
}else if (area.equals("Vietnam")){return WaterbodyOrCountry.VIETNAMSOCIALISTREPUBLICOF();
|
112
|
}else if (area.equals("Thailand")){return WaterbodyOrCountry.THAILANDKINGDOMOF();
|
113
|
}else if (area.equals("Bhutan")){return WaterbodyOrCountry.BHUTANKINGDOMOF();
|
114
|
}else if (area.equals("Laos")){return WaterbodyOrCountry.LAOPEOPLESDEMOCRATICREPUBLIC();
|
115
|
}else if (area.equals("Myanmar (Burma)")){return WaterbodyOrCountry.MYANMAR();
|
116
|
}else if (area.equals("Nepal")){return WaterbodyOrCountry.NEPALKINGDOMOF();
|
117
|
}else if (area.equals("Pakistan")){return WaterbodyOrCountry.PAKISTANISLAMICREPUBLICOF();
|
118
|
}else if (area.equals("Singapore")){return WaterbodyOrCountry.SINGAPOREREPUBLICOF();
|
119
|
|
120
|
}else if (area.equals("Honduras")){return WaterbodyOrCountry.HONDURASREPUBLICOF();
|
121
|
}else if (area.equals("Nicaragua")){return WaterbodyOrCountry.NICARAGUAREPUBLICOF();
|
122
|
}else if (area.equals("Trinidad and Tobago")){return WaterbodyOrCountry.TRINIDADANDTOBAGOREPUBLICOF();
|
123
|
}else if (area.equals("United States")){return WaterbodyOrCountry.UNITEDSTATESOFAMERICA();
|
124
|
}else if (area.equals("Uruguay")){return WaterbodyOrCountry.URUGUAYEASTERNREPUBLICOF();
|
125
|
}else if (area.equals("Haiti")){return WaterbodyOrCountry.HAITIREPUBLICOF();
|
126
|
}else if (area.equals("North Korea")){return WaterbodyOrCountry.KOREADEMOCRATICPEOPLESREPUBLICOF();
|
127
|
}else if (area.equals("South Korea")){return WaterbodyOrCountry.KOREAREPUBLICOF();
|
128
|
}else if (area.equals("Taiwan")){return WaterbodyOrCountry.TAIWANPROVINCEOFCHINA();
|
129
|
|
130
|
}else if (area.equals("Somalia")){return WaterbodyOrCountry.SOMALIASOMALIREPUBLIC();
|
131
|
}else if (area.equals("Albania")){return WaterbodyOrCountry.ALBANIAPEOPLESSOCIALISTREPUBLICOF();
|
132
|
}else if (area.equals("Algeria")){return WaterbodyOrCountry.ALGERIAPEOPLESDEMOCRATICREPUBLICOF();
|
133
|
|
134
|
}else if (area.equals("Andorra")){return WaterbodyOrCountry.ANDORRAPRINCIPALITYOF();
|
135
|
}else if (area.equals("Austria")){return WaterbodyOrCountry.AUSTRIAREPUBLICOF();
|
136
|
}else if (area.equals("Azerbaijan")){return WaterbodyOrCountry.AZERBAIJANREPUBLICOF();
|
137
|
}else if (area.equals("Bulgaria")){return WaterbodyOrCountry.BULGARIAPEOPLESREPUBLICOF();
|
138
|
}else if (area.equals("Croatia")){return WaterbodyOrCountry.HRVATSKA();
|
139
|
}else if (area.equals("Greece")){return WaterbodyOrCountry.GREECEHELLENICREPUBLIC();
|
140
|
}else if (area.equals("Hungary")){return WaterbodyOrCountry.HUNGARYHUNGARIANPEOPLESREPUBLIC();
|
141
|
|
142
|
}else if (area.equals("Iran")){return WaterbodyOrCountry.IRANISLAMICREPUBLICOF();
|
143
|
}else if (area.equals("Iraq")){return WaterbodyOrCountry.IRAQREPUBLICOF();
|
144
|
}else if (area.equals("Israel")){return WaterbodyOrCountry.ISRAELSTATEOF();
|
145
|
}else if (area.equals("Italy")){return WaterbodyOrCountry.ITALYITALIANREPUBLIC();
|
146
|
}else if (area.equals("Kazakhstan")){return WaterbodyOrCountry.KAZAKHSTANREPUBLICOF();
|
147
|
}else if (area.equals("Kyrgyzstan")){return WaterbodyOrCountry.KYRGYZREPUBLIC();
|
148
|
}else if (area.equals("Lebanon")){return WaterbodyOrCountry.LEBANONLEBANESEREPUBLIC();
|
149
|
|
150
|
}else if (area.equals("Luxembourg")){return WaterbodyOrCountry.LUXEMBOURGGRANDDUCHYOF();
|
151
|
}else if (area.equals("Macedonia")){return WaterbodyOrCountry.MACEDONIATHEFORMERYUGOSLAVREPUBLICOF();
|
152
|
}else if (area.equals("Moldova")){return WaterbodyOrCountry.MOLDOVAREPUBLICOF();
|
153
|
}else if (area.equals("Morocco")){return WaterbodyOrCountry.MOROCCOKINGDOMOF();
|
154
|
}else if (area.equals("Romania")){return WaterbodyOrCountry.ROMANIASOCIALISTREPUBLICOF();
|
155
|
}else if (area.equals("Serbia")){return WaterbodyOrCountry.SERBIAANDMONTENEGRO();
|
156
|
}else if (area.equals("Slovakia")){return WaterbodyOrCountry.SLOVAKIA();
|
157
|
}else if (area.equals("Spain")){return WaterbodyOrCountry.SPAINSPANISHSTATE();
|
158
|
|
159
|
}else if (area.equals("Switzerland")){return WaterbodyOrCountry.SWITZERLANDSWISSCONFEDERATION();
|
160
|
}else if (area.equals("Syria")){return WaterbodyOrCountry.SYRIANARABREPUBLIC();
|
161
|
}else if (area.equals("Turkey")){return WaterbodyOrCountry.TURKEYREPUBLICOF();
|
162
|
}else if (area.equals("Cambodia")){return WaterbodyOrCountry.CAMBODIAKINGDOMOF();
|
163
|
}else if (area.equals("Bangladesh")){return WaterbodyOrCountry.BANGLADESHPEOPLESREPUBLICOF();
|
164
|
|
165
|
}else if (area.equals("Sri Lanka")){return WaterbodyOrCountry.SRILANKADEMOCRATICSOCIALISTREPUBLICOF();
|
166
|
}else if (area.equals("Bahamas")){return WaterbodyOrCountry.BAHAMASCOMMONWEALTHOFTHE();
|
167
|
}else if (area.equals("Western Samoa")){return WaterbodyOrCountry.SAMOAINDEPENDENTSTATEOF();
|
168
|
}else if (area.equals("Finland")){return WaterbodyOrCountry.FINLANDREPUBLICOF();
|
169
|
}else if (area.equals("Norway")){return WaterbodyOrCountry.NORWAYKINGDOMOF();
|
170
|
}else if (area.equals("El Salvador")){return WaterbodyOrCountry.ELSALVADORREPUBLICOF();
|
171
|
}else if (area.equals("Cyprus")){return WaterbodyOrCountry.CYPRUSREPUBLICOF();
|
172
|
}else if (area.equals("Sweden")){return WaterbodyOrCountry.SWEDENKINGDOMOF();
|
173
|
}else if (area.equals("Denmark")){return WaterbodyOrCountry.DENMARKKINGDOMOF();
|
174
|
}else if (area.equals("Trinidad & Tobago")){return WaterbodyOrCountry.TRINIDADANDTOBAGOREPUBLICOF();
|
175
|
}else if (area.equals("Chile")){return WaterbodyOrCountry.CHILEREPUBLICOF();
|
176
|
}else if (area.equals("Jordan")){return WaterbodyOrCountry.JORDANHASHEMITEKINGDOMOF();
|
177
|
}else if (area.equals("Montenegro")){
|
178
|
logger.warn("Montenegro is currently mapped to 'Serbia & Montenegro'");
|
179
|
return WaterbodyOrCountry.SERBIAANDMONTENEGRO();
|
180
|
}else if (area.equals("Portugal")){return WaterbodyOrCountry.PORTUGALPORTUGUESEREPUBLIC();
|
181
|
}else if (area.equals("Tunisia")){return WaterbodyOrCountry.TUNISIAREPUBLICOF();
|
182
|
}else if (area.equals("Seychelles")){return WaterbodyOrCountry.SEYCHELLESREPUBLICOF();
|
183
|
}else if (area.equals("Fiji")){return WaterbodyOrCountry.FIJIREPUBLICOFTHEFIJIISLANDS();
|
184
|
}else if (area.equals("Belgium")){return WaterbodyOrCountry.BELGIUMKINGDOMOF();
|
185
|
}else if (area.equals("Virgin Islands")){return WaterbodyOrCountry.USVIRGINISLANDS();
|
186
|
}else if (area.equals("Gambia")){return WaterbodyOrCountry.GAMBIAREPUBLICOFTHE();
|
187
|
}else if (area.equals("Dominica")){return WaterbodyOrCountry.DOMINICACOMMONWEALTHOF();
|
188
|
}else if (area.equals("Liechtenstein")){return WaterbodyOrCountry.LIECHTENSTEINPRINCIPALITYOF();
|
189
|
}else if (area.matches("B(y)?elarus")){return WaterbodyOrCountry.BELARUS();
|
190
|
}else if (area.matches("United States: Alaska")){ return TdwgArea.getAreaByTdwgAbbreviation("ASK");
|
191
|
|
192
|
}else{
|
193
|
if (unhandledCountries.contains(area)){
|
194
|
logger.warn("Unhandled country '" + area + "' replaced by null" );
|
195
|
return null;
|
196
|
}
|
197
|
return null;
|
198
|
|
199
|
}
|
200
|
|
201
|
}
|
202
|
|
203
|
/* (non-Javadoc)
|
204
|
* @see eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase#getLanguageUuid(java.lang.String)
|
205
|
*/
|
206
|
@Override
|
207
|
public UUID getLanguageUuid(String key)
|
208
|
throws UndefinedTransformerMethodException {
|
209
|
return super.getLanguageUuid(key);
|
210
|
}
|
211
|
|
212
|
|
213
|
|
214
|
|
215
|
|
216
|
|
217
|
/* (non-Javadoc)
|
218
|
* @see eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase#getExtensionTypeByKey(java.lang.String)
|
219
|
*/
|
220
|
@Override
|
221
|
public ExtensionType getExtensionTypeByKey(String key) throws UndefinedTransformerMethodException {
|
222
|
if (key == null){return null;
|
223
|
}
|
224
|
return null;
|
225
|
}
|
226
|
|
227
|
/* (non-Javadoc)
|
228
|
* @see eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase#getExtensionTypeUuid(java.lang.String)
|
229
|
*/
|
230
|
@Override
|
231
|
public UUID getExtensionTypeUuid(String key)
|
232
|
throws UndefinedTransformerMethodException {
|
233
|
if (key == null){return null;
|
234
|
}else if (key.equalsIgnoreCase("not available reason")){return uuidExtTypeNotAvailableReason;
|
235
|
// }else if (key.equalsIgnoreCase("recent + fossil")){return uuidRecentAndFossil;
|
236
|
// }else if (key.equalsIgnoreCase("fossil only")){return uuidFossilOnly;
|
237
|
}
|
238
|
return null;
|
239
|
}
|
240
|
|
241
|
/* (non-Javadoc)
|
242
|
* @see eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase#getExtensionTypeUuid(java.lang.String)
|
243
|
*/
|
244
|
@Override
|
245
|
public UUID getMarkerTypeUuid(String key)
|
246
|
throws UndefinedTransformerMethodException {
|
247
|
if (key == null){return null;
|
248
|
}else if (key.equalsIgnoreCase("old record")){return uuidOldRecordMarkerType;
|
249
|
}else if (key.equalsIgnoreCase("checked")){return uuidCheckedMarkerType;
|
250
|
}else if (key.equalsIgnoreCase("not available")){return uuidNotAvailableMarkerType;
|
251
|
|
252
|
}
|
253
|
return null;
|
254
|
}
|
255
|
|
256
|
|
257
|
|
258
|
/* (non-Javadoc)
|
259
|
* @see eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase#getFeatureByKey(java.lang.String)
|
260
|
*/
|
261
|
@Override
|
262
|
public Feature getFeatureByKey(String key) throws UndefinedTransformerMethodException {
|
263
|
if (StringUtils.isBlank(key)){return null;
|
264
|
}else if (key.equalsIgnoreCase("Distribution")){return Feature.DISTRIBUTION();
|
265
|
}else if (key.equalsIgnoreCase("Ecology")){return Feature.ECOLOGY();
|
266
|
}else if (key.equalsIgnoreCase("Diagnosis")){return Feature.DIAGNOSIS();
|
267
|
}else if (key.equalsIgnoreCase("Biology")){return Feature.BIOLOGY_ECOLOGY();
|
268
|
}else if (key.equalsIgnoreCase("Host")){return Feature.HOSTPLANT();
|
269
|
}else{
|
270
|
return null;
|
271
|
}
|
272
|
}
|
273
|
|
274
|
|
275
|
|
276
|
|
277
|
}
|