Project

General

Profile

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

    
10
package eu.etaxonomy.cdm.io.redlist.bfnXml;
11

    
12
import java.util.UUID;
13

    
14
import org.apache.commons.lang.StringUtils;
15
import org.apache.log4j.Logger;
16

    
17
import eu.etaxonomy.cdm.model.name.Rank;
18
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
19
import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;
20
/*import eu.etaxonomy.cdm.model.reference.Article;
21
import eu.etaxonomy.cdm.model.reference.Book;
22
import eu.etaxonomy.cdm.model.reference.BookSection;
23
import eu.etaxonomy.cdm.model.reference.Journal;
24
import eu.etaxonomy.cdm.model.reference.PersonalCommunication;
25
import eu.etaxonomy.cdm.model.reference.PrintSeries;*/
26
//import eu.etaxonomy.cdm.model.reference.WebPage;
27

    
28
public final class BfnXmlTransformer {
29
	@SuppressWarnings("unused")
30
	private static final Logger logger = Logger.getLogger(BfnXmlTransformer.class);
31

    
32
	//redList state Vocabularies
33
	public static final UUID vocStateRLKat =  UUID.fromString("66bbb391-af8a-423b-9506-a235b61af922");
34
	public static final UUID vocStateRlKatDiff =  UUID.fromString("abe3702e-ddd4-420c-a985-08a0f8138215");
35
	public static final UUID vocStateRlAkt =  UUID.fromString("a0bb10de-35c1-47f5-b700-02ceb0a6b50c");
36
	public static final UUID vocStateRLLang =  UUID.fromString("c48d99db-50b6-469f-879d-8bb781842382");
37
	public static final UUID vocStateRLKurz =  UUID.fromString("46549c3b-d9d0-4d34-9135-4789d5ed6fff");
38
	public static final UUID vocStateRLRisk =  UUID.fromString("ec38db54-07dd-4e48-8976-bfa4813ffa44");
39
	public static final UUID vocStateRLResp =  UUID.fromString("c4763d33-75ea-4387-991f-b767650b4899");
40
	public static final UUID vocStateRLKatOld =  UUID.fromString("e9be0626-e14e-4556-a8af-9d49e6279669");
41
	public static final UUID vocStateRLNeo =  UUID.fromString("6c55ae1d-046d-4b67-89aa-b24c4888df6a");
42
	public static final UUID vocStateRLKatId =  UUID.fromString("c54481b3-bf07-43ce-b1cb-09759e4d2a70");
43
	public static final UUID vocStateRLSpecialCases =  UUID.fromString("ce2f4f8f-4222-429f-938b-77b794ecf704");
44
	public static final UUID vocGermanFederalStates =  UUID.fromString("a80dc3d4-0def-4c9b-97a1-12e8eb7ec87f");
45
	public static final UUID vocGermanPresenceTerms =  UUID.fromString("57d6bfa6-ac49-4c88-a9f0-b9c763d5b521");
46
	public static final UUID vocGermanEstablishmentTerms =  UUID.fromString("b5919067-ec28-404a-a22e-be914c810f22");
47

    
48
	//redlist feature
49
	public static final UUID featureRLKat =  UUID.fromString("744f8833-619a-4d83-b330-1997c3b2c2f9");
50
	public static final UUID featureRlKatDiff =  UUID.fromString("bf93361d-0c8c-4961-9f60-20bcb1d3dbaf");
51
	public static final UUID featureRlAkt =  UUID.fromString("39b6962b-05ba-4cd6-a1a9-337d5d156e2f");
52
	public static final UUID featureRLLang =  UUID.fromString("f6027318-b17d-49e6-b8eb-7464304044c8");
53
	public static final UUID featureRLKurz =  UUID.fromString("9ecc65b5-7760-4ce7-add0-950bdcc2c792");
54
	public static final UUID featureRLRisk =  UUID.fromString("2c8f8ffa-c604-4385-b428-4485f5650735");
55
	public static final UUID featureRLResp =  UUID.fromString("02d8010f-7d1b-46a3-8c01-b5e6760bfd14");
56
	public static final UUID featureRLKatOld =  UUID.fromString("bbdff68d-4fa0-438d-afb5-cff89791c93f");
57
	public static final UUID featureRLNeo =  UUID.fromString("153c7173-6d3d-4bee-b8f2-cf8e63e0bc25");
58
	public static final UUID featureRLKatId =  UUID.fromString("dc9f5dd2-302c-4a32-bd70-278bbd9abd16");
59
	public static final UUID featureRLTaxComment =  UUID.fromString("b7c05d78-16a4-4b6e-a03b-fa6bb2ed74ae");
60
	public static final UUID featureRLHazardComment =  UUID.fromString("5beb1ebf-8643-4d5f-9849-8087c35455bb");
61
	public static final UUID featureRLSpecialCases =  UUID.fromString("fb92068d-667a-448e-8019-ca4551891b3b");
62
	public static final UUID featureRLLastOccurrence =  UUID.fromString("218a32be-fb87-41c9-8d64-b21b43b47caa");
63
	public static final UUID featureRLAdditionalComment =  UUID.fromString("c610c98e-f242-4f3b-9edd-7b84a9435867");
64

    
65

    
66
	//rl kat state list
67
	public static final UUID stateTermRlKat0 = UUID.fromString("05ff7c0f-2fb2-4c10-9527-a2e0c68d68af");
68
	public static final UUID stateTermRlKat1 = UUID.fromString("76a6defc-41d0-43bf-a15a-997caeefbbce");
69
	public static final UUID stateTermRlKat2 = UUID.fromString("ee6b79b6-8306-42d1-a80a-2963ded7c952");
70
	public static final UUID stateTermRlKat3 = UUID.fromString("309bf199-c0a3-4f01-829a-b10aafda4547");
71
	public static final UUID stateTermRlKatG = UUID.fromString("fdf9c84e-1b76-4aa8-b676-a614591ad320");
72
	public static final UUID stateTermRlKatR = UUID.fromString("a694e7bd-87a4-4d3c-8333-aed5092bcb0e");
73
	public static final UUID stateTermRlKatV = UUID.fromString("b1a6695d-65f9-4c53-9765-fd7b54e1674c");
74
	public static final UUID stateTermRlKatStar = UUID.fromString("1cda0ef4-cace-42e9-8061-4ada41d03974");
75
	public static final UUID stateTermRlKatStar2 = UUID.fromString("539cffb0-29b9-48fd-af6e-abf9c466199c");
76
	public static final UUID stateTermRlKatD = UUID.fromString("4d61cadd-b27e-41da-9c91-f29e96adaf89");
77
	public static final UUID stateTermRlKatDiamond = UUID.fromString("aedc4006-4097-41cd-bab9-f8607ff84519");
78
	public static final UUID stateTermRlKatKN = UUID.fromString("49dc7656-4cef-4b0e-81dd-8422a3d0d06b");
79

    
80
	//rl kat diff state list
81
	public static final UUID stateTermRLKatDiffPlus = UUID.fromString("6bc7ddc2-6f25-4076-a392-2626cb7a4b35");
82
	public static final UUID stateTermRLKatDiffMinus = UUID.fromString("8f6a8c16-195c-4084-a201-8d702f9636e7");
83
	public static final UUID stateTermRLKatDiffEqual = UUID.fromString("5215fd8a-7e70-43a6-abde-4e14966a0e0e");
84

    
85
	//rl kat neo state list
86
	public static final UUID stateTermRLKatNeo = UUID.fromString("d9ae3dc2-99c9-40aa-b724-9810ed52ca15");
87

    
88
	//rl kat akt state list
89
	public static final UUID stateTermRLKatAktEx = UUID.fromString("a36d4251-0ca1-4818-bbf7-4089a9362a7e");
90
	public static final UUID stateTermRLKatAktEs = UUID.fromString("9d2426a2-d845-47df-9607-01addc4e3253");
91
	public static final UUID stateTermRLKatAktSs = UUID.fromString("bde09fdd-459a-4f8e-a83c-ee562e220f52");
92
	public static final UUID stateTermRLKatAktS = UUID.fromString("3f44fbd3-6d02-4cef-a2c7-c29684b4eb20");
93
	public static final UUID stateTermRLKatAktMh = UUID.fromString("88e3cfff-623a-43b0-a708-e4d7125a504c");
94
	public static final UUID stateTermRLKatAktH = UUID.fromString("ec96d3f0-0f32-4121-9636-41c44079c9ea");
95
	public static final UUID stateTermRLKatAktSh = UUID.fromString("1126e1ad-5c06-43b2-bfd5-8327257a41eb");
96
	public static final UUID stateTermRLKatAktQuest = UUID.fromString("2ee9820e-c98d-4d5a-8621-5d7b73be66c2");
97
	public static final UUID stateTermRLKatAktNb = UUID.fromString("5da81f91-0089-4360-b07c-b3b833f8fc8e");
98
	public static final UUID stateTermRLKatAktKn = UUID.fromString("f10865f9-aa13-4cf0-9e6c-cc657103bd13");
99

    
100
	//rl kat lang state list
101
	public static final UUID stateTermRLKatLangLT3 = UUID.fromString("6d23b5f9-ac18-4ecb-9be8-2c6e5e7db736");
102
	public static final UUID stateTermRLKatLangLT2 = UUID.fromString("1bd75728-79ed-427d-b96e-858ddca6103d");
103
	public static final UUID stateTermRLKatLangLT1 = UUID.fromString("b7c592a4-72cd-4914-87f0-05a6b324af43");
104
	public static final UUID stateTermRLKatLangLT = UUID.fromString("5f202b93-6f20-4bae-ba3c-e2792b5451b4");
105
	public static final UUID stateTermRLKatLangEqual = UUID.fromString("d66be068-4a0c-4f95-aa6e-9e5804ceb1f1");
106
	public static final UUID stateTermRLKatLangGT = UUID.fromString("528185c6-3c12-41bd-a1e5-6ee3d729776c");
107
	public static final UUID stateTermRLKatLangQuest = UUID.fromString("53076429-d4ac-427f-a9dc-2c8a15901999");
108

    
109
	//rl kat kurz state list
110
	public static final UUID stateTermRLKatKurzDown3 = UUID.fromString("dd97697c-004a-4860-a553-67695d32a992");
111
	public static final UUID stateTermRLKatKurzDown2 = UUID.fromString("311a531b-8263-4c72-af79-662ffbc26fbe");
112
	public static final UUID stateTermRLKatKurzDown1 = UUID.fromString("d2a2a51f-5c8f-4cef-809a-58162beae5c2");
113
	public static final UUID stateTermRLKatKurzEqual = UUID.fromString("0a8cf4c0-8b7c-49d5-9195-0999a0f202ad");
114
	public static final UUID stateTermRLKatKurzUp = UUID.fromString("13e7c95c-3ca3-435d-b7b6-4889e594bf2a");
115
	public static final UUID stateTermRLKatKurzQuest = UUID.fromString("4eb11517-a874-484d-8390-dbb8c6bda47c");
116

    
117
	//rl kat risk state list
118
	public static final UUID stateTermRLKatRiskMinus = UUID.fromString("4e96c671-e1f7-4273-83e7-6650207b57e0");
119
	public static final UUID stateTermRLKatRiskEqual = UUID.fromString("d3f00d31-26a4-40c0-99d4-55ea3672ff5d");
120

    
121
	//rl kat resp state list
122
	public static final UUID stateTermRLKatRespBang2 = UUID.fromString("d1e6b6cd-bb19-40a3-9d02-33099295e7f7");
123
	public static final UUID stateTermRLKatRespBang1 = UUID.fromString("01856904-aced-4889-b955-d16872bcd0e8");
124
	public static final UUID stateTermRLKatRespBang = UUID.fromString("c432e39e-ec09-41b7-be9b-28e0d76a4cf9");
125
	public static final UUID stateTermRLKatRespQuest = UUID.fromString("4116fbda-a392-417c-be1c-08f5e72f762b");
126
	public static final UUID stateTermRLKatRespNb = UUID.fromString("800328ce-f618-4de1-9237-243f16fbe9f9");
127

    
128
	//rl Kat old state list
129
	public static final UUID stateTermRLKatOld0 = UUID.fromString("1977b29c-8b63-407a-a11b-ada8726ac653");
130
	public static final UUID stateTermRLKatOld1 = UUID.fromString("4f3d3255-7e06-4a4e-83d1-5841beee85d4");
131
	public static final UUID stateTermRLKatOld2 = UUID.fromString("65163104-76db-4c20-a00f-5c7531f42b3b");
132
	public static final UUID stateTermRLKatOld3 = UUID.fromString("3c0fbb9e-b3fa-4bab-ada2-6efb9b6b9155");
133
	public static final UUID stateTermRLKatOldG = UUID.fromString("a3d2daf2-a570-40d7-b08d-d105a30bb5e2");
134
	public static final UUID stateTermRLKatOldR = UUID.fromString("d6e511cb-40aa-48ab-8a0d-2365c984d698");
135
	public static final UUID stateTermRLKatOldV = UUID.fromString("92a6f1ec-6d61-4879-826a-255c34492507");
136
	public static final UUID stateTermRLKatOldStar = UUID.fromString("196310bc-3b8b-43c9-b317-e2b02bff5c8a");
137
	public static final UUID stateTermRLKatOldStar2 = UUID.fromString("7fbc42ed-43b6-4198-a9dc-bb97bacb3b9b");
138
	public static final UUID stateTermRLKatOldD = UUID.fromString("075a456c-2291-436c-9b9c-b06d95bf6fc6");
139
	public static final UUID stateTermRLKatOldNb = UUID.fromString("72faec78-6db9-4471-9a65-c6d2337bd324");
140
	public static final UUID stateTermRLKatOldKn = UUID.fromString("92276f3e-3c09-4761-ba5b-b49697c6d5ce");
141
	public static final UUID stateTermEmpty = UUID.fromString("1d357340-5329-4f43-a454-7f99625a1d71");
142
	public static final UUID stateTermRLSpecialS = UUID.fromString("71fda1f6-a7eb-44a0-aeb8-e7f676096916");
143
	public static final UUID stateTermRLSpecialE = UUID.fromString("ef335a01-f4f1-4a02-95a2-2254aa457774");
144
	public static final UUID stateTermRLSpecialD = UUID.fromString("6b267cc5-49b6-4ebd-87ec-aa574e9cbcc5");
145

    
146

    
147
	public static TaxonRelationshipType concept2TaxonRelation(String conceptStatus) throws UnknownCdmTypeException{
148
		if(conceptStatus == null) {
149
			return null;
150
		}else if(conceptStatus.equalsIgnoreCase("!=")){
151
			return TaxonRelationshipType.CONGRUENT_TO();
152
		}else if(conceptStatus.equalsIgnoreCase("=!")){
153
			return TaxonRelationshipType.CONGRUENT_TO();
154
		}else if(conceptStatus.equalsIgnoreCase("!=,>")){
155
			return TaxonRelationshipType.CONGRUENT_OR_INCLUDES();
156
		}else if(conceptStatus.equalsIgnoreCase("!=,<")){
157
			return TaxonRelationshipType.CONGRUENT_OR_INCLUDED_OR_INCLUDES();
158
		}else if(conceptStatus.equalsIgnoreCase(">")){
159
			return TaxonRelationshipType.INCLUDES();
160
		}else if(conceptStatus.equalsIgnoreCase(">,><")){
161
			return TaxonRelationshipType.INCLUDES_OR_OVERLAPS();
162
//		}else if(conceptStatus.equalsIgnoreCase("<")){//TODO: should be just Included In
163
//			return TaxonRelationshipType.INCLUDED_OR_INCLUDES();
164
		}else if(conceptStatus.equalsIgnoreCase(">,><")){//TODO: should be Included In Or Overlaps
165
			return TaxonRelationshipType.INCLUDED_OR_INCLUDES_OR_OVERLAPS();
166
		}else if(conceptStatus.equalsIgnoreCase("><")){
167
			return TaxonRelationshipType.OVERLAPS();
168
		}else if(conceptStatus.equalsIgnoreCase("~")){//TODO Included in not here
169
			return TaxonRelationshipType.CONGRUENT_OR_INCLUDES_OR_OVERLAPS();
170
		}else if(conceptStatus.equalsIgnoreCase("?")){
171
			return TaxonRelationshipType.ALL_RELATIONSHIPS();
172
		}else if(conceptStatus.equalsIgnoreCase("/=")){
173
			return TaxonRelationshipType.EXCLUDES();
174
		}else if(conceptStatus.equalsIgnoreCase("\\")){
175
			return TaxonRelationshipType.EXCLUDES();
176
		}
177
		else{
178
			throw new UnknownCdmTypeException("Unknown concept relation status " + conceptStatus);
179
		}
180
	}
181

    
182

    
183
	/** Creates an cdm-Rank by the tcs rank
184
	 */
185
	public static Rank rankCode2Rank (String strRank) throws UnknownCdmTypeException{
186
		if (strRank == null){return null;
187
		//genus group
188
		}else if (strRank.equals("infragen")){return Rank.INFRAGENUS();
189
		}else if (strRank.equals("subgen")){return Rank.SUBGENUS();
190
		}else if (strRank.equals("gen")){return Rank.GENUS();
191
		//genus subdivision
192
		//TODO
193
		}else if (strRank.equals("aggr")){return Rank.SPECIESAGGREGATE();
194
		}else if (strRank.equals("agg.")){return Rank.SPECIESAGGREGATE();
195
		}else if (strRank.equals("taxinfragen")){return Rank.INFRAGENERICTAXON();
196
		}else if (strRank.equals("subser")){return Rank.SUBSERIES();
197
		}else if (strRank.equals("ser")){return Rank.SERIES();
198
		}else if (strRank.equals("subsect")){return Rank.SUBSECTION_BOTANY();
199
		}else if (strRank.equals("sect")){return Rank.SECTION_BOTANY();
200
		//species group
201
		}else if (strRank.equals("subsp_aggr")){return Rank.SUBSPECIFICAGGREGATE();
202
		}else if (strRank.equals("ssp")){return Rank.SUBSPECIES();
203
		}else if (strRank.equals("subsp.")){return Rank.SUBSPECIES();
204
		}else if (strRank.equals("subsp")){return Rank.SUBSPECIES();
205
		}else if (strRank.equals("sp")){return Rank.SPECIES();
206
		}else if (strRank.equals("spezies")){return Rank.SPECIES();
207
		//below subspecies
208
		}else if (strRank.equals("cand")){return Rank.CANDIDATE();
209
		}else if (strRank.equals("taxinfrasp")){return Rank.INFRASPECIFICTAXON();
210
		}else if (strRank.equals("fsp")){return Rank.SPECIALFORM();
211
		}else if (strRank.equals("subsubfm")){return Rank.SUBSUBFORM();
212
		}else if (strRank.equals("subfm")){return Rank.SUBFORM();
213
		}else if (strRank.equals("fm")){return Rank.FORM();
214
		}else if (strRank.equals("f.")){return Rank.FORM();
215
		}else if (strRank.equals("subsubvar")){return Rank.SUBSUBVARIETY();
216
		}else if (strRank.equals("subvar")){return Rank.SUBVARIETY();
217
		}else if (strRank.equals("var")){return Rank.VARIETY();
218
		}else if (strRank.equals("var.")){return Rank.VARIETY();
219
		//TODO -> see documentation, Bacteria status
220
//		}else if (strRank.equals("pv")){return Rank;
221
//		}else if (strRank.equals("bv")){return Rank.;
222
		}else if (strRank.equals("infrasp")){return Rank.INFRASPECIES();
223
		//above superfamily
224
		}else if (strRank.equals("infraord")){return Rank.INFRAORDER();
225
		}else if (strRank.equals("ord")){return Rank.ORDER();
226
		}else if (strRank.equals("superord")){return Rank.SUPERORDER();
227
		}else if (strRank.equals("infracl")){return Rank.INFRACLASS();
228
		}else if (strRank.equals("subcl")){return Rank.SUBCLASS();
229
		}else if (strRank.equals("cl")){return Rank.CLASS();
230
		}else if (strRank.equals("supercl")){return Rank.SUPERCLASS();
231
		}else if (strRank.equals("infraphyl_div")){return Rank.INFRAPHYLUM();
232
		}else if (strRank.equals("subphyl_div")){return Rank.SUBPHYLUM();
233
		}else if (strRank.equals("phyl_div")){return Rank.PHYLUM();
234
		}else if (strRank.equals("superphyl_div")){return Rank.SUPERPHYLUM();
235
		}else if (strRank.equals("infrareg")){return Rank.INFRAKINGDOM();
236
		}else if (strRank.equals("subreg")){return Rank.SUBKINGDOM();
237
		}else if (strRank.equals("reg")){return Rank.KINGDOM();
238
		}else if (strRank.equals("superreg")){return Rank.SUPERKINGDOM();
239
		}else if (strRank.equals("dom")){return Rank.DOMAIN();
240
		}else if (strRank.equals("taxsupragen")){return Rank.SUPRAGENERICTAXON();
241
		}else if (strRank.equals("Auswertungsgruppe")){return Rank.EMPIRE();
242
		//family group
243
		}else if (strRank.equals("infrafam")){return Rank.FAMILY();
244
		}else if (strRank.equals("subfam")){return Rank.FAMILY();
245
		}else if (strRank.equals("fam")){return Rank.FAMILY();
246
		}else if (strRank.equals("superfam")){return Rank.FAMILY();
247
		//family subdivision
248
		}else if (strRank.equals("intratrib")){return Rank.FAMILY();
249
		}else if (strRank.equals("subtrib")){return Rank.FAMILY();
250
		}else if (strRank.equals("trib")){return Rank.FAMILY();
251
		}else if (strRank.equals("supertrib")){return Rank.FAMILY();
252
		}
253
		else {
254
			throw new UnknownCdmTypeException("Unknown Rank " + strRank);
255
		}
256
	}
257

    
258
	public static String redListString2RedListCode (String redListCode) throws UnknownCdmTypeException{
259
		if (redListCode == null){ return null;
260
		}else if (redListCode.equals("#dtpl_RLKat_NULL#")){return "0";
261
		}else if (redListCode.equals("#dtpl_RLKat_EINS#")){return "1";
262
		}else if (redListCode.equals("#dtpl_RLKat_ZWEI#")){return "2";
263
		}else if (redListCode.equals("#dtpl_RLKat_DREI#")){return "3";
264
		}else if (redListCode.equals("#dtpl_RLKat_VIER#")){return "4";
265
		}else if (redListCode.equals("#dtpl_RLKat_G#")){return "G";
266
		}else if (redListCode.equals("#dtpl_RLKat_R#")){return "R";
267
		}else if (redListCode.equals("#dtpl_RLKat_V#")){return "V";
268
		}else if (redListCode.equals("#dtpl_RLKat_STERN#")){return "*";
269
		}else if (redListCode.equals("#dtpl_RLKat_STERN##dtpl_RLKat_STERN#")){return "**";
270
		}else if (redListCode.equals("#dtpl_RLKat_D#")){return "D";
271
		}else if (redListCode.equals("#dtpl_RLKat_RAUTE#")){
272
			char c = 0x2666;
273
			return String.valueOf(c);
274
		}else if (redListCode.equals("kN")){return "kN";
275
		}else if (redListCode.equals("+")){return "+";
276
		}else if (redListCode.equals("-")){return "-";
277
		}else if (redListCode.equals("=")){return "=";
278
		}else if (redListCode.equals("N")){return "N";
279
		}else if (redListCode.equals("S")){return "S";
280
		}else if (redListCode.equals("E")){return "E";
281
		}else if (redListCode.equals("D")){return "D";
282
		}else if (redListCode.equals("#dtpl_KurzfBest_RUNTER##dtpl_KurzfBest_RUNTER##dtpl_KurzfBest_RUNTER#")){
283
			char c = 0x2193;
284
			return String.valueOf(c)+String.valueOf(c)+String.valueOf(c);
285
		}else if (redListCode.equals("#dtpl_KurzfBest_RUNTER##dtpl_KurzfBest_RUNTER#")){
286
			char c = 0x2193;
287
			return String.valueOf(c)+String.valueOf(c);
288
		}else if (redListCode.equals("(#dtpl_KurzfBest_RUNTER#)")){
289
			char c = 0x2193;
290
			return "("+String.valueOf(c)+")";
291
		}else if (redListCode.equals("#dtpl_KurzfBest_HOCH#")){
292
			char c = 0x2191;
293
			return String.valueOf(c);
294
		}else if (redListCode.equals("#dtpl_Risiko_MINUS#")){return "-";
295
		}else if (redListCode.equals("#dtpl_VERANTW_NB#")){return "nb";
296
		}else if (redListCode.equals("#dtpl_TaxBez_GLEICH#")){return "=";
297
		}else if (redListCode.equals("#dtpl_TaxBez_KLEINER#")){return "<";
298
		}else if (redListCode.equals("#dtpl_TaxBez_GROESSER#")){return ">";
299
		}else if (redListCode.equals("#dtpl_TaxBez_UNGLEICH#")){
300
			char c = 0x2260;
301
			return String.valueOf(c);
302
		}else if (redListCode.equals("#dtpl_AlteRLKat_STERN#")){return "*";
303
		}else if (redListCode.equals("#dtpl_AlteRLKat_ZWEISTERN#")){return "**";
304
		}else if (redListCode.equals("#dtpl_AlteRLKat_NB#")){return "nb";
305
		}else if (redListCode.equals("#dtpl_AlteRLKat_KN#")){return "kN";
306
		}else if (redListCode.equals("#dtpl_TaxBez_UNGLEICH#")){return "-";
307
		}else if (StringUtils.isBlank(redListCode)){return "keine Angabe";
308
		}
309
		else {
310
			throw new UnknownCdmTypeException("Unknown Redlist Code " + redListCode);
311
		}
312
	}
313

    
314

    
315
	public static UUID getRedlistVocabularyUUID(String redListVocabulary) throws UnknownCdmTypeException {
316

    
317
		if(redListVocabulary.equalsIgnoreCase("RL Kat.")) {
318
            return vocStateRLKat;
319
        }else if(redListVocabulary.equalsIgnoreCase("Kat. +/-")) {
320
            return vocStateRlKatDiff;
321
        }else if(redListVocabulary.equalsIgnoreCase("aktuelle Bestandsstituation")) {
322
            return vocStateRlAkt;
323
        }else if(redListVocabulary.equalsIgnoreCase("langfristiger Bestandstrend")) {
324
            return vocStateRLLang;
325
        }else if(redListVocabulary.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
326
            return vocStateRLKurz;
327
        }else if(redListVocabulary.equalsIgnoreCase("Risikofaktoren")) {
328
            return vocStateRLRisk;
329
        }else if(redListVocabulary.equalsIgnoreCase("Verantwortlichkeit")) {
330
            return vocStateRLResp;
331
        }else if(redListVocabulary.equalsIgnoreCase("alte RL- Kat.")) {
332
            return vocStateRLKatOld;
333
        }else if(redListVocabulary.equalsIgnoreCase("Neobiota")) {
334
            return vocStateRLNeo;
335
        }else if(redListVocabulary.equalsIgnoreCase("Eindeutiger Code")) {
336
            return vocStateRLKatId;
337
        }else if(redListVocabulary.equalsIgnoreCase("Sonderfälle")) {
338
            return vocStateRLSpecialCases;
339
        }else if(redListVocabulary.equalsIgnoreCase("Vorkommensstatus")) {
340
		    return vocGermanPresenceTerms;
341
		}else if(redListVocabulary.equalsIgnoreCase("Etablierungsstatus")) {
342
		    return vocGermanEstablishmentTerms;
343
		}else if(redListVocabulary.equalsIgnoreCase("Bundesländer")) {
344
            return vocGermanFederalStates;
345
        } else{
346
			throw new UnknownCdmTypeException("Unknown Vocabulary feature, could not match: " + redListVocabulary);
347
		}
348

    
349
	}
350

    
351

    
352
	public static UUID getRedlistFeatureUUID(String redListFeature) throws UnknownCdmTypeException {
353

    
354
		if(redListFeature.equalsIgnoreCase("RL Kat.")) {
355
            return featureRLKat;
356
        }
357
		if(redListFeature.equalsIgnoreCase("Kat. +/-")) {
358
            return featureRlKatDiff;
359
        }
360
		if(redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
361
            return featureRlAkt;
362
        }
363
		if(redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
364
            return featureRLLang;
365
        }
366
		if(redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
367
            return featureRLKurz;
368
        }
369
		if(redListFeature.equalsIgnoreCase("Risikofaktoren")) {
370
            return featureRLRisk;
371
        }
372
		if(redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
373
            return featureRLResp;
374
        }
375
		if(redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
376
            return featureRLKatOld;
377
        }
378
		if(redListFeature.equalsIgnoreCase("Neobiota")) {
379
            return featureRLNeo;
380
        }
381
		if(redListFeature.equalsIgnoreCase("Eindeutiger Code")) {
382
            return featureRLKatId;
383
        }
384
		if(redListFeature.equalsIgnoreCase("Kommentar zur Taxonomie")) {
385
            return featureRLTaxComment;
386
        }
387
		if(redListFeature.equalsIgnoreCase("Kommentar zur Gefährdung")) {
388
            return featureRLHazardComment;
389
        }
390
		if(redListFeature.equalsIgnoreCase("Sonderfälle")) {
391
            return featureRLSpecialCases;
392
        }
393
		if(redListFeature.equalsIgnoreCase("Letzter Nachweis")) {
394
            return featureRLLastOccurrence;
395
        }
396
		if(redListFeature.equalsIgnoreCase("Weitere Kommentare")) {
397
            return featureRLAdditionalComment;
398
        } else{
399
			throw new UnknownCdmTypeException("Unknown feature, could not match: " + redListFeature);
400
		}
401

    
402
	}
403

    
404
	public static UUID getRedlistStateTermUUID(String redListStateTerm, String redListFeature) throws UnknownCdmTypeException {
405
		//RL Kat
406
		char a = 0x2666;
407
		if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase("RL Kat.")) {
408
            return stateTermRlKat0;
409
        }
410
		if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase("RL Kat.")) {
411
            return stateTermRlKat1;
412
        }
413
		if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase("RL Kat.")) {
414
            return stateTermRlKat2;
415
        }
416
		if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase("RL Kat.")) {
417
            return stateTermRlKat3;
418
        }
419
		if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase("RL Kat.")) {
420
            return stateTermRlKatG;
421
        }
422
		if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase("RL Kat.")) {
423
            return stateTermRlKatR;
424
        }
425
		if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase("RL Kat.")) {
426
            return stateTermRlKatV;
427
        }
428
		if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase("RL Kat.")) {
429
            return stateTermRlKatStar;
430
        }
431
		if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase("RL Kat.")) {
432
            return stateTermRlKatStar2;
433
        }
434
		if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("RL Kat.")) {
435
            return stateTermRlKatD;
436
        }
437
		if(redListStateTerm.equalsIgnoreCase(String.valueOf(a)) && redListFeature.equalsIgnoreCase("RL Kat.")) {
438
            return stateTermRlKatDiamond;
439
        }
440
		if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("RL Kat.")) {
441
            return stateTermRlKatKN;
442
        }
443

    
444
		//RL Diff
445
		if(redListStateTerm.equalsIgnoreCase("+") && redListFeature.equalsIgnoreCase("Kat. +/-")) {
446
            return stateTermRLKatDiffPlus;
447
        }
448
		if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase("Kat. +/-")) {
449
            return stateTermRLKatDiffMinus;
450
        }
451
		if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("Kat. +/-")) {
452
            return stateTermRLKatDiffEqual;
453
        }
454

    
455
		//Rl Akt
456
		if(redListStateTerm.equalsIgnoreCase("ex") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
457
            return stateTermRLKatAktEx;
458
        }
459
		if(redListStateTerm.equalsIgnoreCase("es") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
460
            return stateTermRLKatAktEs;
461
        }
462
		if(redListStateTerm.equalsIgnoreCase("ss") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
463
            return stateTermRLKatAktSs;
464
        }
465
		if(redListStateTerm.equalsIgnoreCase("s") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
466
            return stateTermRLKatAktS;
467
        }
468
		if(redListStateTerm.equalsIgnoreCase("mh") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
469
            return stateTermRLKatAktMh;
470
        }
471
		if(redListStateTerm.equalsIgnoreCase("h") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
472
            return stateTermRLKatAktH;
473
        }
474
		if(redListStateTerm.equalsIgnoreCase("sh") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
475
            return stateTermRLKatAktSh;
476
        }
477
		if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
478
            return stateTermRLKatAktQuest;
479
        }
480
		if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
481
            return stateTermRLKatAktNb;
482
        }
483
		if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
484
            return stateTermRLKatAktKn;
485
        }
486

    
487
		//RL Lang
488
		if(redListStateTerm.equalsIgnoreCase("<<<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
489
            return stateTermRLKatLangLT3;
490
        }
491
		if(redListStateTerm.equalsIgnoreCase("<<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
492
            return stateTermRLKatLangLT2;
493
        }
494
		if(redListStateTerm.equalsIgnoreCase("<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
495
            return stateTermRLKatLangLT1;
496
        }
497
		if(redListStateTerm.equalsIgnoreCase("(<)") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
498
            return stateTermRLKatLangLT;
499
        }
500
		if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
501
            return stateTermRLKatLangEqual;
502
        }
503
		if(redListStateTerm.equalsIgnoreCase(">") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
504
            return stateTermRLKatLangGT;
505
        }
506
		if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
507
            return stateTermRLKatLangQuest;
508
        }
509

    
510
		//RL Kurz
511
		char c = 0x2193;
512
		char b = 0x2191;
513
		if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
514
            return stateTermRLKatKurzDown3;
515
        }
516
		if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
517
            return stateTermRLKatKurzDown2;
518
        }
519
		if(redListStateTerm.equalsIgnoreCase("("+String.valueOf(c)+")") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
520
            return stateTermRLKatKurzDown1;
521
        }
522
		if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
523
            return stateTermRLKatKurzEqual;
524
        }
525
		if(redListStateTerm.equalsIgnoreCase(String.valueOf(b)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
526
            return stateTermRLKatKurzUp;
527
        }
528
		if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
529
            return stateTermRLKatKurzQuest;
530
        }
531

    
532
		//RL Risk
533
		if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase("Risikofaktoren")) {
534
            return stateTermRLKatRiskMinus;
535
        }
536
		if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("Risikofaktoren")) {
537
            return stateTermRLKatRiskEqual;
538
        }
539

    
540
		//RL Resp
541
		if(redListStateTerm.equalsIgnoreCase("!!") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
542
            return stateTermRLKatRespBang2;
543
        }
544
		if(redListStateTerm.equalsIgnoreCase("!") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
545
            return stateTermRLKatRespBang1;
546
        }
547
		if(redListStateTerm.equalsIgnoreCase("(!)") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
548
            return stateTermRLKatRespBang;
549
        }
550
		if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
551
            return stateTermRLKatRespQuest;
552
        }
553
		if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
554
            return stateTermRLKatRespNb;
555
        }
556

    
557
		//RL Kat Old
558
		if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
559
            return stateTermRLKatOld0;
560
        }
561
		if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
562
            return stateTermRLKatOld1;
563
        }
564
		if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
565
            return stateTermRLKatOld2;
566
        }
567
		if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
568
            return stateTermRLKatOld3;
569
        }
570
		if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
571
            return stateTermRLKatOldG;
572
        }
573
		if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
574
            return stateTermRLKatOldR;
575
        }
576
		if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
577
            return stateTermRLKatOldV;
578
        }
579
		if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
580
            return stateTermRLKatOldStar;
581
        }
582
		if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
583
            return stateTermRLKatOldStar2;
584
        }
585
		if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
586
            return stateTermRLKatOldD;
587
        }
588
		if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
589
            return stateTermRLKatOldNb;
590
        }
591
		if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
592
            return stateTermRLKatOldKn;
593
        }
594

    
595
		//RL Neo
596
		if(redListStateTerm.equalsIgnoreCase("N") && redListFeature.equalsIgnoreCase("Neobiota")) {
597
            return stateTermRLKatNeo;
598
        }
599

    
600
		//RL Special
601
		if(redListStateTerm.equalsIgnoreCase("S") && redListFeature.equalsIgnoreCase("Sonderfälle")) {
602
            return stateTermRLSpecialS;
603
        }
604
		if(redListStateTerm.equalsIgnoreCase("E") && redListFeature.equalsIgnoreCase("Sonderfälle")) {
605
            return stateTermRLSpecialE;
606
        }
607
		if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("Sonderfälle")) {
608
            return stateTermRLSpecialD;
609
        }
610

    
611

    
612

    
613
		//RL Empty
614
		if(StringUtils.isBlank(redListStateTerm) || redListStateTerm.equalsIgnoreCase("keine Angabe")) {
615
            return stateTermEmpty;
616
        } else {
617
            throw new UnknownCdmTypeException("Unknown State, could not match: " + redListStateTerm +"\n In Category: " + redListFeature);
618
        }
619

    
620
	}
621

    
622

    
623
	/**
624
	 * retrieve german federal States
625
	 *
626
	 * @param strGermanState
627
	 * @return
628
	 * @throws UnknownCdmTypeException
629
	 */
630
	public static UUID getGermanStateUUID(String strGermanState) throws UnknownCdmTypeException {
631

    
632
		if(strGermanState.equalsIgnoreCase("Deutschland")) {
633
            return UUID.fromString("a7f3855e-d4fa-4313-8fcf-da792ef848e7");
634
        }else if(strGermanState.equalsIgnoreCase("Baden-Württemberg")) {
635
            return UUID.fromString("00e64948-9ce9-4ebf-961b-133c56517b1c");
636
        }else if(strGermanState.equalsIgnoreCase("BW")) {
637
		    return UUID.fromString("00e64948-9ce9-4ebf-961b-133c56517b1c");
638
		}else if(strGermanState.equalsIgnoreCase("Bayern")) {
639
            return UUID.fromString("ba075265-368f-4ff0-8942-88546239c70a");
640
        }else if(strGermanState.equalsIgnoreCase("BY")) {
641
		    return UUID.fromString("ba075265-368f-4ff0-8942-88546239c70a");
642
		}else if(strGermanState.equalsIgnoreCase("Berlin")) {
643
            return UUID.fromString("d9339e12-7efa-45df-a008-3c934b9386bc");
644
        }else if(strGermanState.equalsIgnoreCase("BE")) {
645
		    return UUID.fromString("d9339e12-7efa-45df-a008-3c934b9386bc");
646
		}else if(strGermanState.equalsIgnoreCase("Bremen")) {
647
            return UUID.fromString("a6d2f97d-5dba-4b79-a073-25fb491b6320");
648
        }else if(strGermanState.equalsIgnoreCase("HB")) {
649
		    return UUID.fromString("a6d2f97d-5dba-4b79-a073-25fb491b6320");
650
		}else if(strGermanState.equalsIgnoreCase("Brandenburg")) {
651
            return UUID.fromString("dda9d8b8-8090-4667-953e-d8b1f7243926");
652
        }else if(strGermanState.equalsIgnoreCase("BB")) {
653
		    return UUID.fromString("dda9d8b8-8090-4667-953e-d8b1f7243926");
654
		}else if(strGermanState.equalsIgnoreCase("Hamburg")) {
655
            return UUID.fromString("f087a7d7-974f-4627-a414-df27c04f99dd");
656
        }else if(strGermanState.equalsIgnoreCase("HH")) {
657
		    return UUID.fromString("f087a7d7-974f-4627-a414-df27c04f99dd");
658
		}else if(strGermanState.equalsIgnoreCase("Hessen")) {
659
            return UUID.fromString("59de29e6-bf32-4677-89c7-a6834fcb5085");
660
        }else if(strGermanState.equalsIgnoreCase("HE")) {
661
		    return UUID.fromString("59de29e6-bf32-4677-89c7-a6834fcb5085");
662
		}else if(strGermanState.equalsIgnoreCase("Mecklenburg-Vorpommern")) {
663
            return UUID.fromString("06dccbd5-8d5a-4e4f-b56e-d1d74ab25c19");
664
        }else if(strGermanState.equalsIgnoreCase("MV")) {
665
		    return UUID.fromString("06dccbd5-8d5a-4e4f-b56e-d1d74ab25c19");
666
		}else if(strGermanState.equalsIgnoreCase("Niedersachsen") || strGermanState.equalsIgnoreCase("NI")) {
667
            return UUID.fromString("97f77fe8-07ab-4e14-8f8b-40e8caf7e653");
668
        }else if(strGermanState.equalsIgnoreCase("Nordrhein-Westfalen")||strGermanState.equalsIgnoreCase("NW")) {
669
            return UUID.fromString("46bf702e-1438-470c-9c77-04202c34ebf2");
670
        }else if(strGermanState.equalsIgnoreCase("Rheinland-Pfalz")||strGermanState.equalsIgnoreCase("RP")) {
671
            return UUID.fromString("dd3ddb29-b1ec-4937-99a9-4a94d383becf");
672
        }else if(strGermanState.equalsIgnoreCase("Saarland")||strGermanState.equalsIgnoreCase("SL")) {
673
            return UUID.fromString("26d3e85f-ce90-43ae-8ac0-42a60302b7b7");
674
        }else if(strGermanState.equalsIgnoreCase("Sachsen")||strGermanState.equalsIgnoreCase("SN")) {
675
            return UUID.fromString("ca3ef152-ee3a-45f2-8343-983cf0fdddbd");
676
        }else if(strGermanState.equalsIgnoreCase("Sachsen-Anhalt")|| strGermanState.equalsIgnoreCase("ST")) {
677
            return UUID.fromString("bb95b9a4-87ee-49bd-a542-4c30289e8d1f");
678
        }else if(strGermanState.equalsIgnoreCase("Schleswig-Holstein")||strGermanState.equalsIgnoreCase("SH")) {
679
            return UUID.fromString("863323a7-22fb-4070-ad94-ce317098a28a");
680
        }else if(strGermanState.equalsIgnoreCase("Thüringen")||strGermanState.equalsIgnoreCase("TH")) {
681
            return UUID.fromString("72e18526-6bf7-4300-8329-53cab5da2b51");
682
        } else {
683
            throw new UnknownCdmTypeException("Unknown State, could not match: " + strGermanState);
684
        }
685
	}
686

    
687
	public static UUID getGermanAbsenceTermUUID(String strGermanTerm) throws UnknownCdmTypeException {
688
	    if(strGermanTerm.equalsIgnoreCase("abwesend")) {return UUID.fromString("517c4c68-952e-4580-8379-66a4aa12c04b");}
689
	    else if(strGermanTerm.equalsIgnoreCase("abwesend - ausgestorben")) {return UUID.fromString("7a620705-7c0d-4c72-863f-f41d548a2cc5");}
690
	    else if(strGermanTerm.equalsIgnoreCase("abwesend - frühere Fehleingabe")) {return UUID.fromString("1009264c-197d-43d4-ba16-7a7f0a6fde0c");}
691
	    else if(strGermanTerm.equalsIgnoreCase("vorkommend")) {return UUID.fromString("b294e7db-919f-4da0-9ba4-c374e7876aff");}
692
	    else if(strGermanTerm.equalsIgnoreCase("vorkommend - in Einbürgerung befindlich")) {return UUID.fromString("ec2f4099-82f7-44de-8892-09651c76d255");}
693
	    else if(strGermanTerm.equalsIgnoreCase("vorkommend - etabliert")) {return UUID.fromString("c1954b3c-58b5-43f3-b122-c872b2708bba");}
694
	    else if(strGermanTerm.equalsIgnoreCase("vorkommend - kultiviert, domestiziert")) {return UUID.fromString("99ebdb24-fda0-4203-9455-30441cdee17b");}
695
	    else if(strGermanTerm.equalsIgnoreCase("vorkommend - unbeständig")) {return UUID.fromString("12566e82-cdc2-48e4-951d-2fb88f30c5fd");}
696
	    else if(strGermanTerm.equalsIgnoreCase("vorkommend - Vorkommen unsicher")) {return UUID.fromString("a84d2ddb-fe7b-483b-96ba-fc0884d77c81");}
697
	    else if(strGermanTerm.equalsIgnoreCase("vorkommend - unsicher")) {return UUID.fromString("0b144b76-dab6-40da-8511-898f8226a24a");
698
        } else {
699
            throw new UnknownCdmTypeException("Unknown State, could not match: " + strGermanTerm);
700
        }
701
	}
702
    public static UUID getGermanEstablishmentTermUUID(String strGermanTerm) throws UnknownCdmTypeException {
703
        if(strGermanTerm.equalsIgnoreCase("Archaeophyt")) {return UUID.fromString("2cd2bc48-9fcb-4ccd-b03d-bafc0d3dde8c");}
704
        else if(strGermanTerm.equalsIgnoreCase("Indigen")) {return UUID.fromString("20a99907-406a-45f1-aa3e-4768697488e4");}
705
        else if(strGermanTerm.equalsIgnoreCase("Kulturpflanze / domestiziertes Tier")) {return UUID.fromString("94aa6408-f950-4e2e-bded-e01a1be859f6");}
706
        else if(strGermanTerm.equalsIgnoreCase("Neophyt")) {return UUID.fromString("fdf6f1b7-c6ad-4b49-bc6b-b06398f8b1b5");}
707
        else if(strGermanTerm.equalsIgnoreCase("Kultuflüchtling")) {return UUID.fromString("411f9190-56b7-41dd-a31a-3f200619c5e0");
708
        } else {
709
            throw new UnknownCdmTypeException("Unknown State, could not match: " + strGermanTerm);
710
        }
711
    }
712

    
713

    
714
    /**
715
     * @param strDistributionValue
716
     * @return
717
     */
718
    public static UUID matchDistributionValue(String strDistributionValue) throws UnknownCdmTypeException {
719

    
720
        if(strDistributionValue.equalsIgnoreCase("*")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
721
        else if(strDistributionValue.equalsIgnoreCase("0")){return getGermanAbsenceTermUUID("abwesend - ausgestorben");}
722
        else if(strDistributionValue.equalsIgnoreCase("1")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
723
        else if(strDistributionValue.equalsIgnoreCase("2")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
724
        else if(strDistributionValue.equalsIgnoreCase("3")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
725
        else if(strDistributionValue.equalsIgnoreCase("G")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
726
        else if(strDistributionValue.equalsIgnoreCase("D")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
727
        else if(strDistributionValue.equalsIgnoreCase("R")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
728
        else if(strDistributionValue.equalsIgnoreCase("N")){return getGermanAbsenceTermUUID("vorkommend");}
729
        else if(strDistributionValue.equalsIgnoreCase("V")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
730
        else if(strDistributionValue.equalsIgnoreCase("nb")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
731
        else if(strDistributionValue.equalsIgnoreCase("*")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
732
        else if(strDistributionValue.equalsIgnoreCase("#dtpl_SynopseBL_STERN_DP#")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
733
        else if(strDistributionValue.equalsIgnoreCase("#dtpl_SynopseBL_STERN#")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
734
        else if(strDistributionValue.equalsIgnoreCase("#dtpl_SynopseBL_STERN##dtpl_SynopseBL_STERN#")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
735
        else if(strDistributionValue.equalsIgnoreCase("")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
736
        else if(strDistributionValue.equalsIgnoreCase(" ")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
737
        else if(strDistributionValue.equalsIgnoreCase("#dtpl_SynopseBL_NB#")){return getGermanAbsenceTermUUID("vorkommend - etabliert");}
738
        else if(strDistributionValue.equalsIgnoreCase("-")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
739
        else if(strDistributionValue.equalsIgnoreCase("#dtpl_SynopseBL_X_KLAMMER#")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
740
        else if(strDistributionValue.equalsIgnoreCase("#dtpl_SynopseBL_X#")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
741
        else if(strDistributionValue.equalsIgnoreCase("#dtpl_SynopseBL_STRICH#")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
742
        else if(strDistributionValue.equalsIgnoreCase("+")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
743
        else if(strDistributionValue.equalsIgnoreCase("°")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
744
        else if(strDistributionValue.equalsIgnoreCase("G/D")){return getGermanAbsenceTermUUID("vorkommend");}
745
        else if(strDistributionValue.equalsIgnoreCase("R/1")){return getGermanAbsenceTermUUID("vorkommend");}
746
        else if(strDistributionValue.equalsIgnoreCase("?")){return getGermanAbsenceTermUUID("vorkommend - Vorkommen unsicher");}
747
        else if(strDistributionValue.equalsIgnoreCase("#dtpl_SynopseBL_LEER#")){return getGermanAbsenceTermUUID("abwesend");}
748
        else {
749
            throw new UnknownCdmTypeException("Unknown State, could not match: " + strDistributionValue);
750
        }
751
    }
752
}
(8-8/8)