Added Hierarchy to imported vocabularies and abbrevated labels as well as id in source.
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / io / redlist / bfnXml / BfnXmlTransformer.java
index a518d4d0c502c0ebbbf272f4350b04c68082c98a..86ac84f0da8e13bb15c130d438c72baa531e7a60 100644 (file)
@@ -5,7 +5,7 @@
 *\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
-*/ \r
+*/\r
 \r
 package eu.etaxonomy.cdm.io.redlist.bfnXml;\r
 \r
@@ -14,24 +14,17 @@ import java.util.UUID;
 import org.apache.commons.lang.StringUtils;\r
 import org.apache.log4j.Logger;\r
 \r
-import eu.etaxonomy.cdm.common.ResultWrapper;\r
-import eu.etaxonomy.cdm.model.common.RelationshipTermBase;\r
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
-import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;\r
 /*import eu.etaxonomy.cdm.model.reference.Article;\r
 import eu.etaxonomy.cdm.model.reference.Book;\r
 import eu.etaxonomy.cdm.model.reference.BookSection;\r
 import eu.etaxonomy.cdm.model.reference.Journal;\r
 import eu.etaxonomy.cdm.model.reference.PersonalCommunication;\r
 import eu.etaxonomy.cdm.model.reference.PrintSeries;*/\r
-import eu.etaxonomy.cdm.model.reference.Reference;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
 //import eu.etaxonomy.cdm.model.reference.WebPage;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;\r
 \r
 public final class BfnXmlTransformer {\r
        @SuppressWarnings("unused")\r
@@ -49,6 +42,9 @@ public final class BfnXmlTransformer {
        public static final UUID vocStateRLNeo =  UUID.fromString("6c55ae1d-046d-4b67-89aa-b24c4888df6a");\r
        public static final UUID vocStateRLKatId =  UUID.fromString("c54481b3-bf07-43ce-b1cb-09759e4d2a70");\r
        public static final UUID vocStateRLSpecialCases =  UUID.fromString("ce2f4f8f-4222-429f-938b-77b794ecf704");\r
+       public static final UUID vocGermanFederalStates =  UUID.fromString("a80dc3d4-0def-4c9b-97a1-12e8eb7ec87f");\r
+       public static final UUID vocGermanPresenceTerms =  UUID.fromString("57d6bfa6-ac49-4c88-a9f0-b9c763d5b521");\r
+       public static final UUID vocGermanEstablishmentTerms =  UUID.fromString("b5919067-ec28-404a-a22e-be914c810f22");\r
 \r
        //redlist feature\r
        public static final UUID featureRLKat =  UUID.fromString("744f8833-619a-4d83-b330-1997c3b2c2f9");\r
@@ -66,7 +62,7 @@ public final class BfnXmlTransformer {
        public static final UUID featureRLSpecialCases =  UUID.fromString("fb92068d-667a-448e-8019-ca4551891b3b");\r
        public static final UUID featureRLLastOccurrence =  UUID.fromString("218a32be-fb87-41c9-8d64-b21b43b47caa");\r
        public static final UUID featureRLAdditionalComment =  UUID.fromString("c610c98e-f242-4f3b-9edd-7b84a9435867");\r
-       \r
+\r
 \r
        //rl kat state list\r
        public static final UUID stateTermRlKat0 = UUID.fromString("05ff7c0f-2fb2-4c10-9527-a2e0c68d68af");\r
@@ -81,15 +77,15 @@ public final class BfnXmlTransformer {
        public static final UUID stateTermRlKatD = UUID.fromString("4d61cadd-b27e-41da-9c91-f29e96adaf89");\r
        public static final UUID stateTermRlKatDiamond = UUID.fromString("aedc4006-4097-41cd-bab9-f8607ff84519");\r
        public static final UUID stateTermRlKatKN = UUID.fromString("49dc7656-4cef-4b0e-81dd-8422a3d0d06b");\r
-       \r
+\r
        //rl kat diff state list\r
        public static final UUID stateTermRLKatDiffPlus = UUID.fromString("6bc7ddc2-6f25-4076-a392-2626cb7a4b35");\r
        public static final UUID stateTermRLKatDiffMinus = UUID.fromString("8f6a8c16-195c-4084-a201-8d702f9636e7");\r
        public static final UUID stateTermRLKatDiffEqual = UUID.fromString("5215fd8a-7e70-43a6-abde-4e14966a0e0e");\r
-       \r
+\r
        //rl kat neo state list\r
        public static final UUID stateTermRLKatNeo = UUID.fromString("d9ae3dc2-99c9-40aa-b724-9810ed52ca15");\r
-       \r
+\r
        //rl kat akt state list\r
        public static final UUID stateTermRLKatAktEx = UUID.fromString("a36d4251-0ca1-4818-bbf7-4089a9362a7e");\r
        public static final UUID stateTermRLKatAktEs = UUID.fromString("9d2426a2-d845-47df-9607-01addc4e3253");\r
@@ -101,7 +97,7 @@ public final class BfnXmlTransformer {
        public static final UUID stateTermRLKatAktQuest = UUID.fromString("2ee9820e-c98d-4d5a-8621-5d7b73be66c2");\r
        public static final UUID stateTermRLKatAktNb = UUID.fromString("5da81f91-0089-4360-b07c-b3b833f8fc8e");\r
        public static final UUID stateTermRLKatAktKn = UUID.fromString("f10865f9-aa13-4cf0-9e6c-cc657103bd13");\r
-       \r
+\r
        //rl kat lang state list\r
        public static final UUID stateTermRLKatLangLT3 = UUID.fromString("6d23b5f9-ac18-4ecb-9be8-2c6e5e7db736");\r
        public static final UUID stateTermRLKatLangLT2 = UUID.fromString("1bd75728-79ed-427d-b96e-858ddca6103d");\r
@@ -110,7 +106,7 @@ public final class BfnXmlTransformer {
        public static final UUID stateTermRLKatLangEqual = UUID.fromString("d66be068-4a0c-4f95-aa6e-9e5804ceb1f1");\r
        public static final UUID stateTermRLKatLangGT = UUID.fromString("528185c6-3c12-41bd-a1e5-6ee3d729776c");\r
        public static final UUID stateTermRLKatLangQuest = UUID.fromString("53076429-d4ac-427f-a9dc-2c8a15901999");\r
-       \r
+\r
        //rl kat kurz state list\r
        public static final UUID stateTermRLKatKurzDown3 = UUID.fromString("dd97697c-004a-4860-a553-67695d32a992");\r
        public static final UUID stateTermRLKatKurzDown2 = UUID.fromString("311a531b-8263-4c72-af79-662ffbc26fbe");\r
@@ -118,18 +114,18 @@ public final class BfnXmlTransformer {
        public static final UUID stateTermRLKatKurzEqual = UUID.fromString("0a8cf4c0-8b7c-49d5-9195-0999a0f202ad");\r
        public static final UUID stateTermRLKatKurzUp = UUID.fromString("13e7c95c-3ca3-435d-b7b6-4889e594bf2a");\r
        public static final UUID stateTermRLKatKurzQuest = UUID.fromString("4eb11517-a874-484d-8390-dbb8c6bda47c");\r
-       \r
+\r
        //rl kat risk state list\r
        public static final UUID stateTermRLKatRiskMinus = UUID.fromString("4e96c671-e1f7-4273-83e7-6650207b57e0");\r
        public static final UUID stateTermRLKatRiskEqual = UUID.fromString("d3f00d31-26a4-40c0-99d4-55ea3672ff5d");\r
-       \r
+\r
        //rl kat resp state list\r
        public static final UUID stateTermRLKatRespBang2 = UUID.fromString("d1e6b6cd-bb19-40a3-9d02-33099295e7f7");\r
        public static final UUID stateTermRLKatRespBang1 = UUID.fromString("01856904-aced-4889-b955-d16872bcd0e8");\r
        public static final UUID stateTermRLKatRespBang = UUID.fromString("c432e39e-ec09-41b7-be9b-28e0d76a4cf9");\r
        public static final UUID stateTermRLKatRespQuest = UUID.fromString("4116fbda-a392-417c-be1c-08f5e72f762b");\r
        public static final UUID stateTermRLKatRespNb = UUID.fromString("800328ce-f618-4de1-9237-243f16fbe9f9");\r
-       \r
+\r
        //rl Kat old state list\r
        public static final UUID stateTermRLKatOld0 = UUID.fromString("1977b29c-8b63-407a-a11b-ada8726ac653");\r
        public static final UUID stateTermRLKatOld1 = UUID.fromString("4f3d3255-7e06-4a4e-83d1-5841beee85d4");\r
@@ -147,18 +143,20 @@ public final class BfnXmlTransformer {
        public static final UUID stateTermRLSpecialS = UUID.fromString("71fda1f6-a7eb-44a0-aeb8-e7f676096916");\r
        public static final UUID stateTermRLSpecialE = UUID.fromString("ef335a01-f4f1-4a02-95a2-2254aa457774");\r
        public static final UUID stateTermRLSpecialD = UUID.fromString("6b267cc5-49b6-4ebd-87ec-aa574e9cbcc5");\r
-       \r
-       \r
+\r
+\r
        public static TaxonRelationshipType concept2TaxonRelation(String conceptStatus) throws UnknownCdmTypeException{\r
                if(conceptStatus == null) {\r
                        return null;\r
                }else if(conceptStatus.equalsIgnoreCase("!=")){\r
                        return TaxonRelationshipType.CONGRUENT_TO();\r
+               }else if(conceptStatus.equalsIgnoreCase("=!")){\r
+                       return TaxonRelationshipType.CONGRUENT_TO();\r
                }else if(conceptStatus.equalsIgnoreCase("!=,>")){\r
                        return TaxonRelationshipType.CONGRUENT_OR_INCLUDES();\r
                }else if(conceptStatus.equalsIgnoreCase("!=,<")){\r
                        return TaxonRelationshipType.CONGRUENT_OR_INCLUDED_OR_INCLUDES();\r
-               }else if(conceptStatus.equalsIgnoreCase(">")){  \r
+               }else if(conceptStatus.equalsIgnoreCase(">")){\r
                        return TaxonRelationshipType.INCLUDES();\r
                }else if(conceptStatus.equalsIgnoreCase(">,><")){\r
                        return TaxonRelationshipType.INCLUDES_OR_OVERLAPS();\r
@@ -181,8 +179,8 @@ public final class BfnXmlTransformer {
                        throw new UnknownCdmTypeException("Unknown concept relation status " + conceptStatus);\r
                }\r
        }\r
-       \r
-       \r
+\r
+\r
        /** Creates an cdm-Rank by the tcs rank\r
         */\r
        public static Rank rankCode2Rank (String strRank) throws UnknownCdmTypeException{\r
@@ -192,7 +190,7 @@ public final class BfnXmlTransformer {
                }else if (strRank.equals("subgen")){return Rank.SUBGENUS();\r
                }else if (strRank.equals("gen")){return Rank.GENUS();\r
                //genus subdivision\r
-               //TODO \r
+               //TODO\r
                }else if (strRank.equals("aggr")){return Rank.SPECIESAGGREGATE();\r
                }else if (strRank.equals("agg.")){return Rank.SPECIESAGGREGATE();\r
                }else if (strRank.equals("taxinfragen")){return Rank.INFRAGENERICTAXON();\r
@@ -252,7 +250,7 @@ public final class BfnXmlTransformer {
                }else if (strRank.equals("subtrib")){return Rank.FAMILY();\r
                }else if (strRank.equals("trib")){return Rank.FAMILY();\r
                }else if (strRank.equals("supertrib")){return Rank.FAMILY();\r
-               }       \r
+               }\r
                else {\r
                        throw new UnknownCdmTypeException("Unknown Rank " + strRank);\r
                }\r
@@ -262,12 +260,12 @@ public final class BfnXmlTransformer {
                if (redListCode == null){ return null;\r
                }else if (redListCode.equals("#dtpl_RLKat_NULL#")){return "0";\r
                }else if (redListCode.equals("#dtpl_RLKat_EINS#")){return "1";\r
-               }else if (redListCode.equals("#dtpl_RLKat_ZWEI#")){return "2"; \r
-               }else if (redListCode.equals("#dtpl_RLKat_DREI#")){return "3"; \r
-               }else if (redListCode.equals("#dtpl_RLKat_VIER#")){return "4"; \r
-               }else if (redListCode.equals("#dtpl_RLKat_G#")){return "G"; \r
-               }else if (redListCode.equals("#dtpl_RLKat_R#")){return "R"; \r
-               }else if (redListCode.equals("#dtpl_RLKat_V#")){return "V"; \r
+               }else if (redListCode.equals("#dtpl_RLKat_ZWEI#")){return "2";\r
+               }else if (redListCode.equals("#dtpl_RLKat_DREI#")){return "3";\r
+               }else if (redListCode.equals("#dtpl_RLKat_VIER#")){return "4";\r
+               }else if (redListCode.equals("#dtpl_RLKat_G#")){return "G";\r
+               }else if (redListCode.equals("#dtpl_RLKat_R#")){return "R";\r
+               }else if (redListCode.equals("#dtpl_RLKat_V#")){return "V";\r
                }else if (redListCode.equals("#dtpl_RLKat_STERN#")){return "*";\r
                }else if (redListCode.equals("#dtpl_RLKat_STERN##dtpl_RLKat_STERN#")){return "**";\r
                }else if (redListCode.equals("#dtpl_RLKat_D#")){return "D";\r
@@ -308,12 +306,12 @@ public final class BfnXmlTransformer {
                }else if (redListCode.equals("#dtpl_AlteRLKat_KN#")){return "kN";\r
                }else if (redListCode.equals("#dtpl_TaxBez_UNGLEICH#")){return "-";\r
                }else if (StringUtils.isBlank(redListCode)){return "keine Angabe";\r
-               }       \r
+               }\r
                else {\r
                        throw new UnknownCdmTypeException("Unknown Redlist Code " + redListCode);\r
                }\r
        }\r
-       \r
+\r
        public static NomenclaturalCode nomCodeString2NomCode (String nomCode) throws UnknownCdmTypeException{\r
                if (nomCode != null){\r
                        nomCode = nomCode.trim();\r
@@ -326,25 +324,55 @@ public final class BfnXmlTransformer {
                }else if (nomCode.equals("CultivatedPlant")){return NomenclaturalCode.ICNCP;\r
                //TODO code Indeterminate\r
 //             }else if (nomCode.equals("Indeterminate")){return NomenclaturalCode.XXX();\r
-               }       \r
+               }\r
                else {\r
                        throw new UnknownCdmTypeException("Unknown Nomenclatural Code " + nomCode);\r
                }\r
        }\r
        public static UUID getRedlistVocabularyUUID(String redListVocabulary) throws UnknownCdmTypeException {\r
 \r
-               if(redListVocabulary.equalsIgnoreCase("RL Kat.")) return vocStateRLKat;\r
-               if(redListVocabulary.equalsIgnoreCase("Kat. +/-")) return vocStateRlKatDiff;\r
-               if(redListVocabulary.equalsIgnoreCase("aktuelle Bestandsstituation")) return vocStateRlAkt;\r
-               if(redListVocabulary.equalsIgnoreCase("langfristiger Bestandstrend")) return vocStateRLLang;\r
-               if(redListVocabulary.equalsIgnoreCase("kurzfristiger Bestandstrend")) return vocStateRLKurz;\r
-               if(redListVocabulary.equalsIgnoreCase("Risikofaktoren")) return vocStateRLRisk;\r
-               if(redListVocabulary.equalsIgnoreCase("Verantwortlichkeit")) return vocStateRLResp;\r
-               if(redListVocabulary.equalsIgnoreCase("alte RL- Kat.")) return vocStateRLKatOld;\r
-               if(redListVocabulary.equalsIgnoreCase("Neobiota")) return vocStateRLNeo;\r
-               if(redListVocabulary.equalsIgnoreCase("Eindeutiger Code")) return vocStateRLKatId;\r
-               if(redListVocabulary.equalsIgnoreCase("Sonderfälle")) return vocStateRLSpecialCases;\r
-               else{\r
+               if(redListVocabulary.equalsIgnoreCase("RL Kat.")) {\r
+            return vocStateRLKat;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("Kat. +/-")) {\r
+            return vocStateRlKatDiff;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return vocStateRlAkt;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return vocStateRLLang;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("kurzfristiger Bestandstrend")) {\r
+            return vocStateRLKurz;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("Risikofaktoren")) {\r
+            return vocStateRLRisk;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("Verantwortlichkeit")) {\r
+            return vocStateRLResp;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return vocStateRLKatOld;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("Neobiota")) {\r
+            return vocStateRLNeo;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("Eindeutiger Code")) {\r
+            return vocStateRLKatId;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("Sonderfälle")) {\r
+            return vocStateRLSpecialCases;\r
+        }\r
+               if(redListVocabulary.equalsIgnoreCase("Vorkommensstatus")) {\r
+                   return vocGermanPresenceTerms;\r
+               }\r
+               if(redListVocabulary.equalsIgnoreCase("Etablierungsstatus")) {\r
+                   return vocGermanEstablishmentTerms;\r
+               }\r
+               if(redListVocabulary.equalsIgnoreCase("Bundesländer")) {\r
+            return vocGermanFederalStates;\r
+        } else{\r
                        throw new UnknownCdmTypeException("Unknown Vocabulary feature, could not match: " + redListVocabulary);\r
                }\r
 \r
@@ -353,23 +381,51 @@ public final class BfnXmlTransformer {
 \r
        public static UUID getRedlistFeatureUUID(String redListFeature) throws UnknownCdmTypeException {\r
 \r
-               if(redListFeature.equalsIgnoreCase("RL Kat.")) return featureRLKat;\r
-               if(redListFeature.equalsIgnoreCase("Kat. +/-")) return featureRlKatDiff;\r
-               if(redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return featureRlAkt;\r
-               if(redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) return featureRLLang;\r
-               if(redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) return featureRLKurz;\r
-               if(redListFeature.equalsIgnoreCase("Risikofaktoren")) return featureRLRisk;\r
-               if(redListFeature.equalsIgnoreCase("Verantwortlichkeit")) return featureRLResp;\r
-               if(redListFeature.equalsIgnoreCase("alte RL- Kat.")) return featureRLKatOld;\r
-               if(redListFeature.equalsIgnoreCase("Neobiota")) return featureRLNeo;\r
-               if(redListFeature.equalsIgnoreCase("Eindeutiger Code")) return featureRLKatId;\r
-               if(redListFeature.equalsIgnoreCase("Kommentar zur Taxonomie")) return featureRLTaxComment;\r
-               if(redListFeature.equalsIgnoreCase("Kommentar zur Gefährdung")) return featureRLHazardComment;\r
-               if(redListFeature.equalsIgnoreCase("Sonderfälle")) return featureRLSpecialCases;\r
-               if(redListFeature.equalsIgnoreCase("Letzter Nachweis")) return featureRLLastOccurrence;\r
-               if(redListFeature.equalsIgnoreCase("Weitere Kommentare")) return featureRLAdditionalComment;\r
-               \r
-               else{\r
+               if(redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return featureRLKat;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Kat. +/-")) {\r
+            return featureRlKatDiff;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return featureRlAkt;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return featureRLLang;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {\r
+            return featureRLKurz;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Risikofaktoren")) {\r
+            return featureRLRisk;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {\r
+            return featureRLResp;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return featureRLKatOld;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Neobiota")) {\r
+            return featureRLNeo;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Eindeutiger Code")) {\r
+            return featureRLKatId;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Kommentar zur Taxonomie")) {\r
+            return featureRLTaxComment;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Kommentar zur Gefährdung")) {\r
+            return featureRLHazardComment;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Sonderfälle")) {\r
+            return featureRLSpecialCases;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Letzter Nachweis")) {\r
+            return featureRLLastOccurrence;\r
+        }\r
+               if(redListFeature.equalsIgnoreCase("Weitere Kommentare")) {\r
+            return featureRLAdditionalComment;\r
+        } else{\r
                        throw new UnknownCdmTypeException("Unknown feature, could not match: " + redListFeature);\r
                }\r
 \r
@@ -378,96 +434,309 @@ public final class BfnXmlTransformer {
        public static UUID getRedlistStateTermUUID(String redListStateTerm, String redListFeature) throws UnknownCdmTypeException {\r
                //RL Kat\r
                char a = 0x2666;\r
-               if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKat0;\r
-               if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKat1;\r
-               if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKat2;\r
-               if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKat3;\r
-               if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKatG;\r
-               if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKatR;\r
-               if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKatV;\r
-               if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKatStar;\r
-               if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKatStar2;\r
-               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKatD;\r
-               if(redListStateTerm.equalsIgnoreCase(String.valueOf(a)) && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKatDiamond;\r
-               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("RL Kat.")) return stateTermRlKatKN;\r
-               \r
+               if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKat0;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKat1;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKat2;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKat3;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKatG;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKatR;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKatV;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKatStar;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKatStar2;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKatD;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase(String.valueOf(a)) && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKatDiamond;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("RL Kat.")) {\r
+            return stateTermRlKatKN;\r
+        }\r
+\r
                //RL Diff\r
-               if(redListStateTerm.equalsIgnoreCase("+") && redListFeature.equalsIgnoreCase("Kat. +/-")) return stateTermRLKatDiffPlus;\r
-               if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase("Kat. +/-")) return stateTermRLKatDiffMinus;\r
-               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("Kat. +/-")) return stateTermRLKatDiffEqual;\r
-               \r
+               if(redListStateTerm.equalsIgnoreCase("+") && redListFeature.equalsIgnoreCase("Kat. +/-")) {\r
+            return stateTermRLKatDiffPlus;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase("Kat. +/-")) {\r
+            return stateTermRLKatDiffMinus;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("Kat. +/-")) {\r
+            return stateTermRLKatDiffEqual;\r
+        }\r
+\r
                //Rl Akt\r
-               if(redListStateTerm.equalsIgnoreCase("ex") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktEx;\r
-               if(redListStateTerm.equalsIgnoreCase("es") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktEs;\r
-               if(redListStateTerm.equalsIgnoreCase("ss") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktSs;\r
-               if(redListStateTerm.equalsIgnoreCase("s") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktS;\r
-               if(redListStateTerm.equalsIgnoreCase("mh") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktMh;\r
-               if(redListStateTerm.equalsIgnoreCase("h") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktH;\r
-               if(redListStateTerm.equalsIgnoreCase("sh") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktSh;\r
-               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktQuest;\r
-               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktNb;\r
-               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) return stateTermRLKatAktKn;\r
-               \r
+               if(redListStateTerm.equalsIgnoreCase("ex") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktEx;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("es") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktEs;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("ss") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktSs;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("s") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktS;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("mh") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktMh;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("h") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktH;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("sh") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktSh;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktQuest;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktNb;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {\r
+            return stateTermRLKatAktKn;\r
+        }\r
+\r
                //RL Lang\r
-               if(redListStateTerm.equalsIgnoreCase("<<<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) return stateTermRLKatLangLT3;\r
-               if(redListStateTerm.equalsIgnoreCase("<<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) return stateTermRLKatLangLT2;\r
-               if(redListStateTerm.equalsIgnoreCase("<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) return stateTermRLKatLangLT1;\r
-               if(redListStateTerm.equalsIgnoreCase("(<)") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) return stateTermRLKatLangLT;\r
-               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) return stateTermRLKatLangEqual;\r
-               if(redListStateTerm.equalsIgnoreCase(">") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) return stateTermRLKatLangGT;\r
-               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) return stateTermRLKatLangQuest;\r
-               \r
+               if(redListStateTerm.equalsIgnoreCase("<<<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return stateTermRLKatLangLT3;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("<<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return stateTermRLKatLangLT2;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return stateTermRLKatLangLT1;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("(<)") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return stateTermRLKatLangLT;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return stateTermRLKatLangEqual;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase(">") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return stateTermRLKatLangGT;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {\r
+            return stateTermRLKatLangQuest;\r
+        }\r
+\r
                //RL Kurz\r
                char c = 0x2193;\r
                char b = 0x2191;\r
-               if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) return stateTermRLKatKurzDown3;\r
-               if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) return stateTermRLKatKurzDown2;\r
-               if(redListStateTerm.equalsIgnoreCase("("+String.valueOf(c)+")") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) return stateTermRLKatKurzDown1;\r
-               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) return stateTermRLKatKurzEqual;\r
-               if(redListStateTerm.equalsIgnoreCase(String.valueOf(b)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) return stateTermRLKatKurzUp;\r
-               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) return stateTermRLKatKurzQuest;\r
-               \r
+               if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {\r
+            return stateTermRLKatKurzDown3;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {\r
+            return stateTermRLKatKurzDown2;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("("+String.valueOf(c)+")") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {\r
+            return stateTermRLKatKurzDown1;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {\r
+            return stateTermRLKatKurzEqual;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase(String.valueOf(b)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {\r
+            return stateTermRLKatKurzUp;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {\r
+            return stateTermRLKatKurzQuest;\r
+        }\r
+\r
                //RL Risk\r
-               if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase("Risikofaktoren")) return stateTermRLKatRiskMinus;\r
-               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("Risikofaktoren")) return stateTermRLKatRiskEqual;\r
-               \r
+               if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase("Risikofaktoren")) {\r
+            return stateTermRLKatRiskMinus;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("Risikofaktoren")) {\r
+            return stateTermRLKatRiskEqual;\r
+        }\r
+\r
                //RL Resp\r
-               if(redListStateTerm.equalsIgnoreCase("!!") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) return stateTermRLKatRespBang2;\r
-               if(redListStateTerm.equalsIgnoreCase("!") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) return stateTermRLKatRespBang1;\r
-               if(redListStateTerm.equalsIgnoreCase("(!)") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) return stateTermRLKatRespBang;\r
-               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) return stateTermRLKatRespQuest;\r
-               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) return stateTermRLKatRespNb;\r
-               \r
+               if(redListStateTerm.equalsIgnoreCase("!!") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {\r
+            return stateTermRLKatRespBang2;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("!") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {\r
+            return stateTermRLKatRespBang1;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("(!)") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {\r
+            return stateTermRLKatRespBang;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {\r
+            return stateTermRLKatRespQuest;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {\r
+            return stateTermRLKatRespNb;\r
+        }\r
+\r
                //RL Kat Old\r
-               if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOld0;\r
-               if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOld1;\r
-               if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOld2;\r
-               if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOld3;\r
-               if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOldG;\r
-               if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOldR;\r
-               if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOldV;\r
-               if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOldStar;\r
-               if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOldStar2;\r
-               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOldD;\r
-               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOldNb;\r
-               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) return stateTermRLKatOldKn;\r
-               \r
+               if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOld0;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOld1;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOld2;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOld3;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOldG;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOldR;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOldV;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOldStar;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOldStar2;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOldD;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOldNb;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {\r
+            return stateTermRLKatOldKn;\r
+        }\r
+\r
                //RL Neo\r
-               if(redListStateTerm.equalsIgnoreCase("N") && redListFeature.equalsIgnoreCase("Neobiota")) return stateTermRLKatNeo;\r
+               if(redListStateTerm.equalsIgnoreCase("N") && redListFeature.equalsIgnoreCase("Neobiota")) {\r
+            return stateTermRLKatNeo;\r
+        }\r
 \r
                //RL Special\r
-               if(redListStateTerm.equalsIgnoreCase("S") && redListFeature.equalsIgnoreCase("Sonderfälle")) return stateTermRLSpecialS;\r
-               if(redListStateTerm.equalsIgnoreCase("E") && redListFeature.equalsIgnoreCase("Sonderfälle")) return stateTermRLSpecialE;\r
-               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("Sonderfälle")) return stateTermRLSpecialD;\r
-               \r
-               \r
-               \r
+               if(redListStateTerm.equalsIgnoreCase("S") && redListFeature.equalsIgnoreCase("Sonderfälle")) {\r
+            return stateTermRLSpecialS;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("E") && redListFeature.equalsIgnoreCase("Sonderfälle")) {\r
+            return stateTermRLSpecialE;\r
+        }\r
+               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("Sonderfälle")) {\r
+            return stateTermRLSpecialD;\r
+        }\r
+\r
+\r
+\r
                //RL Empty\r
-               if(StringUtils.isBlank(redListStateTerm) || redListStateTerm.equalsIgnoreCase("keine Angabe")) return stateTermEmpty; \r
-               \r
-               else\r
-                       throw new UnknownCdmTypeException("Unknown State, could not match: " + redListStateTerm +"\n In Category: " + redListFeature);\r
-       \r
+               if(StringUtils.isBlank(redListStateTerm) || redListStateTerm.equalsIgnoreCase("keine Angabe")) {\r
+            return stateTermEmpty;\r
+        } else {\r
+            throw new UnknownCdmTypeException("Unknown State, could not match: " + redListStateTerm +"\n In Category: " + redListFeature);\r
+        }\r
+\r
+       }\r
+\r
+\r
+       /**\r
+        * retrieve german federal States\r
+        *\r
+        * @param strGermanState\r
+        * @return\r
+        * @throws UnknownCdmTypeException\r
+        */\r
+       public static UUID getGermanStateUUID(String strGermanState) throws UnknownCdmTypeException {\r
+\r
+               if(strGermanState.equalsIgnoreCase("Deutschland")) {\r
+            return UUID.fromString("a7f3855e-d4fa-4313-8fcf-da792ef848e7");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Baden-Württemberg")) {\r
+            return UUID.fromString("00e64948-9ce9-4ebf-961b-133c56517b1c");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Bayern")) {\r
+            return UUID.fromString("ba075265-368f-4ff0-8942-88546239c70a");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Berlin")) {\r
+            return UUID.fromString("d9339e12-7efa-45df-a008-3c934b9386bc");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Bremen")) {\r
+            return UUID.fromString("a6d2f97d-5dba-4b79-a073-25fb491b6320");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Brandenburg")) {\r
+            return UUID.fromString("dda9d8b8-8090-4667-953e-d8b1f7243926");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Hamburg")) {\r
+            return UUID.fromString("f087a7d7-974f-4627-a414-df27c04f99dd");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Hessen")) {\r
+            return UUID.fromString("59de29e6-bf32-4677-89c7-a6834fcb5085");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Mecklenburg-Vorpommern")) {\r
+            return UUID.fromString("06dccbd5-8d5a-4e4f-b56e-d1d74ab25c19");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Niedersachsen")) {\r
+            return UUID.fromString("97f77fe8-07ab-4e14-8f8b-40e8caf7e653");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Nordrhein-Westfalen")) {\r
+            return UUID.fromString("46bf702e-1438-470c-9c77-04202c34ebf2");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Rheinland-Pfalz")) {\r
+            return UUID.fromString("dd3ddb29-b1ec-4937-99a9-4a94d383becf");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Saarland")) {\r
+            return UUID.fromString("26d3e85f-ce90-43ae-8ac0-42a60302b7b7");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Sachsen")) {\r
+            return UUID.fromString("ca3ef152-ee3a-45f2-8343-983cf0fdddbd");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Sachsen-Anhalt")) {\r
+            return UUID.fromString("bb95b9a4-87ee-49bd-a542-4c30289e8d1f");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Schleswig-Holstein")) {\r
+            return UUID.fromString("863323a7-22fb-4070-ad94-ce317098a28a");\r
+        }\r
+               if(strGermanState.equalsIgnoreCase("Thüringen")) {\r
+            return UUID.fromString("72e18526-6bf7-4300-8329-53cab5da2b51");\r
+        } else {\r
+            throw new UnknownCdmTypeException("Unknown State, could not match: " + strGermanState);\r
+        }\r
+       }\r
+\r
+       public static UUID getGermanAbsenceTermUUID(String strGermanTerm) throws UnknownCdmTypeException {\r
+           if(strGermanTerm.equalsIgnoreCase("abwesend")) {return UUID.fromString("517c4c68-952e-4580-8379-66a4aa12c04b");}\r
+           if(strGermanTerm.equalsIgnoreCase("abwesend - ausgestorben")) {return UUID.fromString("7a620705-7c0d-4c72-863f-f41d548a2cc5");}\r
+           if(strGermanTerm.equalsIgnoreCase("abwesend - frühere Fehleingabe")) {return UUID.fromString("1009264c-197d-43d4-ba16-7a7f0a6fde0c");}\r
+           if(strGermanTerm.equalsIgnoreCase("vorkommend")) {return UUID.fromString("b294e7db-919f-4da0-9ba4-c374e7876aff");}\r
+           if(strGermanTerm.equalsIgnoreCase("vorkommend - in Einbürgerung befindlich")) {return UUID.fromString("ec2f4099-82f7-44de-8892-09651c76d255");}\r
+           if(strGermanTerm.equalsIgnoreCase("vorkommend - etabliert")) {return UUID.fromString("c1954b3c-58b5-43f3-b122-c872b2708bba");}\r
+           if(strGermanTerm.equalsIgnoreCase("vorkommend - kultiviert, domestiziert")) {return UUID.fromString("99ebdb24-fda0-4203-9455-30441cdee17b");}\r
+           if(strGermanTerm.equalsIgnoreCase("vorkommend - unbeständig")) {return UUID.fromString("12566e82-cdc2-48e4-951d-2fb88f30c5fd");}\r
+           if(strGermanTerm.equalsIgnoreCase("vorkommend - Vorkommen unsicher")) {return UUID.fromString("a84d2ddb-fe7b-483b-96ba-fc0884d77c81");}\r
+           if(strGermanTerm.equalsIgnoreCase("vorkommend - unsicher")) {return UUID.fromString("0b144b76-dab6-40da-8511-898f8226a24a");\r
+        } else {\r
+            throw new UnknownCdmTypeException("Unknown State, could not match: " + strGermanTerm);\r
+        }\r
        }\r
-       \r
+    public static UUID getGermanEstablishmentTermUUID(String strGermanTerm) throws UnknownCdmTypeException {\r
+        if(strGermanTerm.equalsIgnoreCase("Archaeophyt")) {return UUID.fromString("2cd2bc48-9fcb-4ccd-b03d-bafc0d3dde8c");}\r
+        if(strGermanTerm.equalsIgnoreCase("Indigen")) {return UUID.fromString("20a99907-406a-45f1-aa3e-4768697488e4");}\r
+        if(strGermanTerm.equalsIgnoreCase("Kulturpflanze / domestiziertes Tier")) {return UUID.fromString("94aa6408-f950-4e2e-bded-e01a1be859f6");}\r
+        if(strGermanTerm.equalsIgnoreCase("Neophyt")) {return UUID.fromString("fdf6f1b7-c6ad-4b49-bc6b-b06398f8b1b5");}\r
+        if(strGermanTerm.equalsIgnoreCase("Kultuflüchtling")) {return UUID.fromString("411f9190-56b7-41dd-a31a-3f200619c5e0");\r
+        } else {\r
+            throw new UnknownCdmTypeException("Unknown State, could not match: " + strGermanTerm);\r
+        }\r
+    }\r
 }\r