9feff271ff68a21662677ac11049cbb01f19fe0a
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / io / redlist / bfnXml / in / BfnXmlTransformer.java
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.in;
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 }