Refactored string constants
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 3 May 2016 08:10:24 +0000 (10:10 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 3 May 2016 08:11:02 +0000 (10:11 +0200)
app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/BfnXmlConstants.java [new file with mode: 0644]
app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/in/BfnXmlImportFeature.java
app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/in/BfnXmlImportMetaData.java
app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/in/BfnXmlImportTaxonName.java
app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/in/BfnXmlTransformer.java

diff --git a/app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/BfnXmlConstants.java b/app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/BfnXmlConstants.java
new file mode 100644 (file)
index 0000000..61e1375
--- /dev/null
@@ -0,0 +1,206 @@
+// $Id$
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.io.redlist.bfnXml;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.io.redlist.bfnXml.out.DoctronicDocumentBuilder;
+import eu.etaxonomy.cdm.model.common.Language;
+
+/**
+ * @author pplitzner
+ * @date May 3, 2016
+ *
+ */
+public class BfnXmlConstants {
+    public static final Logger logger = Logger.getLogger(DoctronicDocumentBuilder.class);
+
+    public static final Language defaultLanguage = Language.DEFAULT();
+
+    public static final String NEWLINE = System.getProperty("line.separator");
+
+    public static final String EL_DEB_EXPORT = "DEBExport";
+    public static final String EL_ROTELISTEDATEN = "ROTELISTEDATEN";
+
+    public static final String EL_EIGENSCHAFTEN = "EIGENSCHAFTEN";
+    public static final String EL_EIGENSCHAFT = "EIGENSCHAFT";
+    public static final String ATT_STANDARDNAME = "standardname";
+
+    public static final String EL_METAINFOS = "METAINFOS";
+    public static final String EL_MWERT = "MWERT";
+    public static final String ATT_NAME = "name";
+
+    public static final String EL_LISTENWERTE = "LISTENWERTE";
+    public static final String EL_LWERT = "LWERT";
+    public static final String ATT_REIHENFOLGE = "reihenfolge";
+
+    public static final String EL_RAUMINFOS = "RAUMINFOS";
+    public static final String EL_RAUM = "RAUM";
+    public static final String EL_RAUM_WERT = "RWERT";
+
+    public static final String EL_TAXONYME = "TAXONYME";
+    public static final String EL_TAXONYM = "TAXONYM";
+    public static final String ATT_TAXNR = "taxNr";
+
+    public static final String EL_WISSNAME = "WISSNAME";
+    public static final String EL_NANTEIL = "NANTEIL";
+    public static final String ATT_BEREICH = "bereich";
+
+    public static final String EL_DEUTSCHENAMEN = "DEUTSCHENAMEN";
+    public static final String EL_DNAME = "DNAME";
+    public static final String ATT_SEQUENZ = "sequenz";
+    public static final String EL_TRIVIALNAME = "TRIVIALNAME";
+    public static final String EL_GRUPPE = "GRUPPE";
+    public static final String EL_SPEZIFISCH = "SPEZIFISCH";
+
+    public static final String EL_INFORMATIONEN = "INFORMATIONEN";
+    public static final String EL_BEZUGSRAUM = "BEZUGSRAUM";
+    public static final String EL_IWERT = "IWERT";
+    public static final String EL_WERT = "WERT";
+
+    public static final String EL_KONZEPTBEZIEHUNGEN = "KONZEPTBEZIEHUNGEN";
+    public static final String EL_KONZEPTBEZIEHUNG = "KONZEPTBEZIEHUNG";
+
+    public static final String RNK_SUPERTRIB = "supertrib";
+
+    public static final String RNK_TRIB = "trib";
+
+    public static final String RNK_SUBTRIB = "subtrib";
+
+    public static final String RNK_INTRATRIB = "intratrib";
+
+    public static final String RNK_SUPERFAM = "superfam";
+
+    public static final String RNK_FAM = "fam";
+
+    public static final String RNK_SUBCL = "subcl";
+
+    public static final String RNK_SPEZIES = "spezies";
+
+    public static final String RNK_SSP = "ssp";
+
+    public static final String RNK_SUBFAM = "subfam";
+
+    public static final String RNK_INFRAFAM = "infrafam";
+
+    public static final String RNK_AUSWERTUNGSGRUPPE = "Auswertungsgruppe";
+
+    public static final String RNK_TAXSUPRAGEN = "taxsupragen";
+
+    public static final String RNK_DOM = "dom";
+
+    public static final String RNK_SUPERREG = "superreg";
+
+    public static final String RNK_REG = "reg";
+
+    public static final String RNK_SUBREG = "subreg";
+
+    public static final String RNK_INFRAREG = "infrareg";
+
+    public static final String RNK_SUPERPHYL_DIV = "superphyl_div";
+
+    public static final String RNK_PHYL_DIV = "phyl_div";
+
+    public static final String RNK_SUBPHYL_DIV = "subphyl_div";
+
+    public static final String RNK_INFRAPHYL_DIV = "infraphyl_div";
+
+    public static final String RNK_SUPERCL = "supercl";
+
+    public static final String RNK_CL = "cl";
+
+    public static final String RNK_INFRACL = "infracl";
+
+    public static final String RNK_SUPERORD = "superord";
+
+    public static final String RNK_ORD = "ord";
+
+    public static final String RNK_INFRAORD = "infraord";
+
+    public static final String RNK_INFRASP = "infrasp";
+
+    public static final String RNK_VAR_DOT = "var.";
+
+    public static final String RNK_VAR = "var";
+
+    public static final String RNK_SUBVAR = "subvar";
+
+    public static final String RNK_SUBSUBVAR = "subsubvar";
+
+    public static final String RNK_F = "f.";
+
+    public static final String RNK_FM = "fm";
+
+    public static final String RNK_SUBFM = "subfm";
+
+    public static final String RNK_SUBSUBFM = "subsubfm";
+
+    public static final String RNK_FSP = "fsp";
+
+    public static final String RNK_TAXINFRASP = "taxinfrasp";
+
+    public static final String RNK_CAND = "cand";
+
+    public static final String RNK_SP = "sp";
+
+    public static final String RNK_SUBSP = "subsp";
+
+    public static final String RNK_SUBSP_DOT = "subsp.";
+
+    public static final String RNK_SUBSP_AGGR = "subsp_aggr";
+
+    public static final String RNK_SECT = "sect";
+
+    public static final String RNK_SUBSECT = "subsect";
+
+    public static final String RNK_SER = "ser";
+
+    public static final String RNK_SUBSER = "subser";
+
+    public static final String RNK_TAXINFRAGEN = "taxinfragen";
+
+    public static final String RNK_AGG = "agg.";
+
+    public static final String RNK_AGGR = "aggr";
+
+    public static final String RNK_GEN = "gen";
+
+    public static final String RNK_SUBGEN = "subgen";
+
+    public static final String RNK_INFRAGEN = "infragen";
+
+    public static final String VOC_BUNDESLAENDER = "Bundesländer";
+
+    public static final String VOC_ETABLIERUNGSSTATUS = "Etablierungsstatus";
+
+    public static final String VOC_VORKOMMENSSTATUS = "Vorkommensstatus";
+
+    public static final String VOC_SONDERFAELLE = "Sonderfälle";
+
+    public static final String VOC_EINDEUTIGER_CODE = "Eindeutiger Code";
+
+    public static final String VOC_NEOBIOTA = "Neobiota";
+
+    public static final String VOC_ALTE_RL_KAT = "alte RL- Kat.";
+
+    public static final String VOC_VERANTWORTLICHKEIT = "Verantwortlichkeit";
+
+    public static final String VOC_RISIKOFAKTOREN = "Risikofaktoren";
+
+    public static final String VOC_KURZFRISTIGER_BESTANDSTREND = "kurzfristiger Bestandstrend";
+
+    public static final String VOC_LANGFRISTIGER_BESTANDSTREND = "langfristiger Bestandstrend";
+
+    public static final String VOC_AKTUELLE_BESTANDSSTITUATION = "aktuelle Bestandsstituation";
+
+    public static final String VOC_KAT = "Kat. +/-";
+
+    public static final String VOC_RL_KAT = "RL Kat.";
+}
index 5524c9efdeeb3d76ec5509dcc72b62131fa28909..33ec9081444ee6ee5ef050ccfcbf6a3bc152c6f3 100644 (file)
@@ -24,6 +24,7 @@ import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.common.ResultWrapper;
 import eu.etaxonomy.cdm.common.XmlHelp;
 import eu.etaxonomy.cdm.io.common.ICdmIO;
+import eu.etaxonomy.cdm.io.redlist.bfnXml.BfnXmlConstants;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
 import eu.etaxonomy.cdm.model.common.TermType;
@@ -88,64 +89,64 @@ public class BfnXmlImportFeature extends BfnXmlImportBase implements ICdmIO<BfnX
                        if(object instanceof Element){
                                currentElement = (Element)object;
 
-                               if(currentElement.getName().equalsIgnoreCase("ROTELISTEDATEN")){
+                               if(currentElement.getName().equalsIgnoreCase(BfnXmlConstants.EL_ROTELISTEDATEN)){
 
                                        TransactionStatus tx = startTransaction();
 
-                                       childName = "EIGENSCHAFTEN";
+                                       childName = BfnXmlConstants.EL_EIGENSCHAFTEN;
                                        obligatory = false;
                                        Element elFeatureNames = XmlHelp.getSingleChildElement(success, currentElement, childName, bfnNamespace, obligatory);
 
-                                       String bfnElementName = "EIGENSCHAFT";
+                                       String bfnElementName = BfnXmlConstants.EL_EIGENSCHAFT;
                                        List<Element> elFeatureList = elFeatureNames.getChildren(bfnElementName, bfnNamespace);
                                        List<Feature> featureList = new ArrayList<Feature>();
                                        //for each taxonName
                                        for (Element elFeature : elFeatureList){
 
-                                               if(elFeature.getAttributeValue("standardname", bfnNamespace).equalsIgnoreCase("RL Kat.")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME, bfnNamespace).equalsIgnoreCase("RL Kat.")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }
                                                String featureLabel = "Kat. +/-";
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase(featureLabel)){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase(featureLabel)){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("aktuelle Bestandsstituation")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("aktuelle Bestandsstituation")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("langfristiger Bestandstrend")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("langfristiger Bestandstrend")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("kurzfristiger Bestandstrend")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("kurzfristiger Bestandstrend")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Risikofaktoren")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Risikofaktoren")){
                                                    makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Verantwortlichkeit")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Verantwortlichkeit")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("alte RL- Kat.")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("alte RL- Kat.")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Neobiota")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Neobiota")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Eindeutiger Code")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Eindeutiger Code")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Kommentar zur Taxonomie")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Kommentar zur Taxonomie")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Kommentar zur Gefährdung")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Kommentar zur Gefährdung")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Sonderfälle")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Sonderfälle")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Letzter Nachweis")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Letzter Nachweis")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }else
-                                               if(elFeature.getAttributeValue("standardname").equalsIgnoreCase("Weitere Kommentare")){
+                                               if(elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Weitere Kommentare")){
                                                        makeFeature(vocabularyService, featureList,success, obligatory, bfnNamespace,elFeature, state);
                                                }
                                        }
@@ -190,7 +191,7 @@ public class BfnXmlImportFeature extends BfnXmlImportBase implements ICdmIO<BfnX
                        ResultWrapper<Boolean> success, boolean obligatory,
                        Namespace bfnNamespace, Element elFeature, BfnXmlImportState state) {
                String childName;
-               String strRlKat = elFeature.getAttributeValue("standardname");
+               String strRlKat = elFeature.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME);
                UUID featureUUID = null;
                try {
                        featureUUID = BfnXmlTransformer.getRedlistFeatureUUID(strRlKat);
@@ -202,10 +203,10 @@ public class BfnXmlImportFeature extends BfnXmlImportBase implements ICdmIO<BfnX
                //TODO implement German, but currently titleCache generation does not yet work correctly with another language
 //             redListCat.getRepresentation(Language.DEFAULT()).setLanguage(Language.GERMAN());
                featureList.add(redListCat);
-               childName = "LISTENWERTE";
+               childName = BfnXmlConstants.EL_LISTENWERTE;
                Element elListValues = XmlHelp.getSingleChildElement(success, elFeature, childName, bfnNamespace, obligatory);
                if(elListValues != null && !elListValues.getContent().isEmpty()){
-                       String childElementName = "LWERT";
+                       String childElementName = BfnXmlConstants.EL_LWERT;
                        createOrUpdateStates(bfnNamespace, elListValues, childElementName, redListCat, state);
                }
                createOrUpdateTermVocabulary(TermType.Feature, vocabularyService, redListCat, "RedList Feature");
index c692cd56f100216de55b02e312a5adecb5130087..6511d365b332c9e630cfae90c6a523fe9ccdea88 100644 (file)
@@ -19,6 +19,7 @@ import org.springframework.transaction.TransactionStatus;
 
 import eu.etaxonomy.cdm.common.ResultWrapper;
 import eu.etaxonomy.cdm.io.common.ICdmIO;
+import eu.etaxonomy.cdm.io.redlist.bfnXml.BfnXmlConstants;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
@@ -60,7 +61,7 @@ public class BfnXmlImportMetaData extends BfnXmlImportBase implements ICdmIO<Bfn
                Element elDataSet = getDataSetElement(config);
                Namespace bfnNamespace = config.getBfnXmlNamespace();
                //create complete source object
-               if(elDataSet.getName().equalsIgnoreCase("DEBExport")){
+               if(elDataSet.getName().equalsIgnoreCase(BfnXmlConstants.EL_DEB_EXPORT)){
                        sourceFileName = elDataSet.getAttributeValue("source");
                        debVersion = elDataSet.getAttributeValue("debversion");
                        timeStamp = elDataSet.getAttributeValue("timestamp");
@@ -88,7 +89,7 @@ public class BfnXmlImportMetaData extends BfnXmlImportBase implements ICdmIO<Bfn
                     List<Element> elMetaDataList  = currentElement.getChildren();
                                        //for each taxonName
                                        for (Element elMetaData : elMetaDataList){
-                                               if( elMetaData.getAttributeValue("standardname").equalsIgnoreCase("KurzLit_A")){
+                                               if( elMetaData.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("KurzLit_A")){
                                                        @SuppressWarnings("unchecked")
                             List<Element> children = elMetaData.getChildren();
                                                        String kurzlitA = children.get(0).getTextNormalize();
@@ -97,14 +98,14 @@ public class BfnXmlImportMetaData extends BfnXmlImportBase implements ICdmIO<Bfn
                                                        state.setFirstListSecRef(sourceReference);
 
                                                }
-                                               else if( elMetaData.getAttributeValue("standardname").equalsIgnoreCase("Klassifikation_A")){
+                                               else if( elMetaData.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Klassifikation_A")){
                                                        @SuppressWarnings("unchecked")
                             List<Element> children = elMetaData.getChildren();
                                                        String klassifikation_A = children.get(0).getTextNormalize();
                                                        state.setFirstClassificationName(klassifikation_A);
 
                                                }
-                                               else if( elMetaData.getAttributeValue("standardname").equalsIgnoreCase("KurzLit_B")){
+                                               else if( elMetaData.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("KurzLit_B")){
                                                        @SuppressWarnings("unchecked")
                             List<Element> children = elMetaData.getChildren();
                                                        String kurzlitB = children.get(0).getTextNormalize();
@@ -112,7 +113,7 @@ public class BfnXmlImportMetaData extends BfnXmlImportBase implements ICdmIO<Bfn
                                                        sourceReference.setTitle(kurzlitB);
                                                        state.setSecondListSecRef(sourceReference);
                                                }
-                                               else if( elMetaData.getAttributeValue("standardname").equalsIgnoreCase("Klassifikation_B")){
+                                               else if( elMetaData.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Klassifikation_B")){
                                                        @SuppressWarnings("unchecked")
                             List<Element> children = elMetaData.getChildren();
                                                        String klassifikation_B = children.get(0).getTextNormalize();
index 79e5de263e5b78a181e9efc9b7fbfe9035004d1b..42c6a224d59f47719142777f9cf95b4be51a0089 100644 (file)
@@ -27,6 +27,7 @@ import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.common.ResultWrapper;
 import eu.etaxonomy.cdm.common.XmlHelp;
+import eu.etaxonomy.cdm.io.redlist.bfnXml.BfnXmlConstants;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.Language;
@@ -99,14 +100,14 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
                        if(object instanceof Element){
                                currentElement = (Element)object;
                                //import taxon lists
-                               if(currentElement.getName().equalsIgnoreCase("ROTELISTEDATEN")){
+                               if(currentElement.getName().equalsIgnoreCase(BfnXmlConstants.EL_ROTELISTEDATEN)){
                                        TransactionStatus tx = startTransaction();
                                        Map<UUID, TaxonBase> savedTaxonMap = extractTaxonNames(state, taxonService, config, currentElement, bfnNamespace);
                                        createOrUpdateClassification(config, taxonService, savedTaxonMap, currentElement, state);
                                        commitTransaction(tx);
                                }//import concept relations of taxon lists
                                if(config.isHasSecondList()){
-                                       if(currentElement.getName().equalsIgnoreCase("KONZEPTBEZIEHUNGEN")){
+                                       if(currentElement.getName().equalsIgnoreCase(BfnXmlConstants.EL_KONZEPTBEZIEHUNGEN)){
                                                TransactionStatus tx = startTransaction();
                                                extractTaxonConceptRelationShips(bfnNamespace,currentElement);
                                                commitTransaction(tx);
@@ -125,7 +126,7 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
         */
        private void extractTaxonConceptRelationShips(Namespace bfnNamespace, Element currentElement) {
                String childName;
-               String bfnElementName = "KONZEPTBEZIEHUNG";
+               String bfnElementName = BfnXmlConstants.EL_KONZEPTBEZIEHUNG;
                ResultWrapper<Boolean> success = ResultWrapper.NewInstance(true);
                List<Element> elConceptList = currentElement.getChildren(bfnElementName, bfnNamespace);
                List<TaxonBase> updatedTaxonList = new ArrayList<TaxonBase>();
@@ -133,7 +134,7 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
 
                        childName = "TAXONYM1";
                        Element elTaxon1 = XmlHelp.getSingleChildElement(success, element, childName, bfnNamespace, false);
-                       String taxNr1 = elTaxon1.getAttributeValue("taxNr");
+                       String taxNr1 = elTaxon1.getAttributeValue(BfnXmlConstants.ATT_TAXNR);
                        int int1 = Integer.parseInt(taxNr1);
                        Taxon taxon1 = firstList.get(int1);
                        TaxonBase<?> taxonBase1 = getTaxonService().load(taxon1.getUuid());
@@ -141,7 +142,7 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
 
                        childName = "TAXONYM2";
                        Element elTaxon2 = XmlHelp.getSingleChildElement(success, element, childName, bfnNamespace, false);
-                       String taxNr2 = elTaxon2.getAttributeValue("taxNr");
+                       String taxNr2 = elTaxon2.getAttributeValue(BfnXmlConstants.ATT_TAXNR);
                        int int2 = Integer.parseInt(taxNr2);
                        Taxon taxon2 = secondList.get(int2);
                        TaxonBase<?> taxonBase2 = getTaxonService().load(taxon2.getUuid());
@@ -212,20 +213,20 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
                boolean obligatory;
                String idNamespace = "TaxonName";
 
-               childName = "TAXONYME";
+               childName = BfnXmlConstants.EL_TAXONYME;
                obligatory = false;
                Element elTaxonNames = XmlHelp.getSingleChildElement(success, elDataSet, childName, bfnNamespace, obligatory);
 
-               String bfnElementName = "TAXONYM";
+               String bfnElementName = BfnXmlConstants.EL_TAXONYM;
                List<Element> elTaxonList = elTaxonNames.getChildren(bfnElementName, bfnNamespace);
 
                //for each taxonName
                for (Element elTaxon : elTaxonList){
                        //create Taxon
-                       String taxonId = elTaxon.getAttributeValue("taxNr");
-                       childName = "WISSNAME";
+                       String taxonId = elTaxon.getAttributeValue(BfnXmlConstants.ATT_TAXNR);
+                       childName = BfnXmlConstants.EL_WISSNAME;
                        Element elWissName = XmlHelp.getSingleChildElement(success, elTaxon, childName, bfnNamespace, obligatory);
-                       String childElementName = "NANTEIL";
+                       String childElementName = BfnXmlConstants.EL_NANTEIL;
                        Taxon taxon = createOrUpdateTaxon(success, idNamespace, config, bfnNamespace, elWissName, childElementName, state);
 
                        //for each synonym
@@ -236,19 +237,19 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
                                createOrUpdateSynonym(taxon, success, obligatory, bfnNamespace, childElementName,elSynonyms, taxonId, state);
                        }
                        //for vernacular name
-                       childName = "DEUTSCHENAMEN";
+                       childName = BfnXmlConstants.EL_DEUTSCHENAMEN;
                        Element elVernacularName = XmlHelp.getSingleChildElement(success, elTaxon, childName, bfnNamespace, obligatory);
                        if(elVernacularName != null){
-                               childElementName = "DNAME";
+                               childElementName = BfnXmlConstants.EL_DNAME;
                                createOrUpdateVernacularName(taxon, bfnNamespace, childElementName, elVernacularName, state);
                        }
                        //for each information concerning the taxon element
                        //TODO Information block
                        if(config.isDoInformationImport()){
-                               childName = "INFORMATIONEN";
+                               childName = BfnXmlConstants.EL_INFORMATIONEN;
                                Element elInformations = XmlHelp.getSingleChildElement(success, elTaxon, childName, bfnNamespace, obligatory);
                                if(elInformations != null){
-                                       childElementName = "BEZUGSRAUM";
+                                       childElementName = BfnXmlConstants.EL_BEZUGSRAUM;
                                        createOrUpdateInformation(taxon, bfnNamespace, childElementName,elInformations, state);
                                }
                        }
@@ -357,8 +358,8 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
 //             Long uniqueID = null;
                for(Element elWissName:elWissNameList){
 
-                       if(elWissName.getAttributeValue("bereich", bfnNamespace).equalsIgnoreCase("Eindeutiger Code")){
-                               uriNameSpace = elWissName.getAttributeValue("bereich");
+                       if(elWissName.getAttributeValue(BfnXmlConstants.ATT_BEREICH, bfnNamespace).equalsIgnoreCase("Eindeutiger Code")){
+                               uriNameSpace = elWissName.getAttributeValue(BfnXmlConstants.ATT_BEREICH);
                                String textNormalize = elWissName.getTextNormalize();
                                if(StringUtils.isBlank(textNormalize)){
                                        uniqueID = "";
@@ -366,17 +367,17 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
                                        uniqueID = textNormalize;
                                }
                        }
-                       if(elWissName.getAttributeValue("bereich", bfnNamespace).equalsIgnoreCase("Autoren")){
+                       if(elWissName.getAttributeValue(BfnXmlConstants.ATT_BEREICH, bfnNamespace).equalsIgnoreCase("Autoren")){
                                strAuthor = elWissName.getTextNormalize();
                        }
-                       if(elWissName.getAttributeValue("bereich", bfnNamespace).equalsIgnoreCase("Rang")){
+                       if(elWissName.getAttributeValue(BfnXmlConstants.ATT_BEREICH, bfnNamespace).equalsIgnoreCase("Rang")){
                                String strRank = elWissName.getTextNormalize();
                                rank = makeRank(strRank);
                        }
-                       if(elWissName.getAttributeValue("bereich", bfnNamespace).equalsIgnoreCase("Zusätze")){
+                       if(elWissName.getAttributeValue(BfnXmlConstants.ATT_BEREICH, bfnNamespace).equalsIgnoreCase("Zusätze")){
                                strSupplement = elWissName.getTextNormalize();
                        }
-                       if(elWissName.getAttributeValue("bereich", bfnNamespace).equalsIgnoreCase("wissName")){
+                       if(elWissName.getAttributeValue(BfnXmlConstants.ATT_BEREICH, bfnNamespace).equalsIgnoreCase("wissName")){
                                try{
                                        TaxonNameBase<?, ?> nameBase = parseNonviralNames(rank,strAuthor,strSupplement,elWissName);
                                        if(nameBase.isProtectedTitleCache() == true){
@@ -453,24 +454,24 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
                        Rank rank = null;
                        String strAuthor = null;
                        String strSupplement = null;
-                       childName = "WISSNAME";
+                       childName = BfnXmlConstants.EL_WISSNAME;
                        Element elSynScientificName = XmlHelp.getSingleChildElement(success, elSyn, childName, bfnNamespace, obligatory);
 
-                       childElementName = "NANTEIL";
+                       childElementName = BfnXmlConstants.EL_NANTEIL;
                        List<Element> elSynDetails = elSynScientificName.getChildren(childElementName, bfnNamespace);
 
                        for(Element elSynDetail:elSynDetails){
-                               if(elSynDetail.getAttributeValue("bereich").equalsIgnoreCase("Rang")){
+                               if(elSynDetail.getAttributeValue(BfnXmlConstants.ATT_BEREICH).equalsIgnoreCase("Rang")){
                                        String strRank = elSynDetail.getTextNormalize();
                                        rank = makeRank(strRank);
                                }
-                               if(elSynDetail.getAttributeValue("bereich").equalsIgnoreCase("Autoren")){
+                               if(elSynDetail.getAttributeValue(BfnXmlConstants.ATT_BEREICH).equalsIgnoreCase("Autoren")){
                                        strAuthor = elSynDetail.getTextNormalize();
                                }
-                               if(elSynDetail.getAttributeValue("bereich", bfnNamespace).equalsIgnoreCase("Zusätze")){
+                               if(elSynDetail.getAttributeValue(BfnXmlConstants.ATT_BEREICH, bfnNamespace).equalsIgnoreCase("Zusätze")){
                                        strSupplement = elSynDetail.getTextNormalize();
                                }
-                               if(elSynDetail.getAttributeValue("bereich").equalsIgnoreCase("wissName")){
+                               if(elSynDetail.getAttributeValue(BfnXmlConstants.ATT_BEREICH).equalsIgnoreCase("wissName")){
                                        try{
                                                TaxonNameBase<?, ?> nameBase = parseNonviralNames(rank,strAuthor,strSupplement,elSynDetail);
 
@@ -536,8 +537,8 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
                for(Element elInfo:elInformationList){
                        //check if geographical scope is Bund and import only these information for now
                        //TODO create several taxon descriptions for different geographical scope
-                       if(elInfo.getName().equalsIgnoreCase("BEZUGSRAUM") && elInfo.getAttributeValue("name").equalsIgnoreCase("Bund")){
-                               childElementName = "IWERT";
+                       if(elInfo.getName().equalsIgnoreCase(BfnXmlConstants.EL_BEZUGSRAUM) && elInfo.getAttributeValue("name").equalsIgnoreCase("Bund")){
+                               childElementName = BfnXmlConstants.EL_IWERT;
                                TaxonDescription taxonDescription = getTaxonDescription(taxon, false, true);
                                UUID germanStateUUID;
                                try {
@@ -552,113 +553,113 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
                                List<Element> elInfoDetailList = elInfo.getChildren(childElementName, bfnNamespace);
 
                                for(Element elInfoDetail : elInfoDetailList){
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("RL Kat.")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("RL Kat.")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Kat. +/-")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Kat. +/-")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("aktuelle Bestandsstituation")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("aktuelle Bestandsstituation")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("langfristiger Bestandstrend")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("langfristiger Bestandstrend")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("kurzfristiger Bestandstrend")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("kurzfristiger Bestandstrend")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Risikofaktoren")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Risikofaktoren")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Verantwortlichkeit")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Verantwortlichkeit")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("alte RL- Kat.")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("alte RL- Kat.")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Neobiota")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Neobiota")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Eindeutiger Code")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Eindeutiger Code")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Kommentar zur Taxonomie")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Kommentar zur Taxonomie")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, true);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Kommentar zur Gefährdung")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Kommentar zur Gefährdung")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, true);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Sonderfälle")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Sonderfälle")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, false);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Letzter Nachweis")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Letzter Nachweis")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, true);
                                        }
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("Weitere Kommentare")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("Weitere Kommentare")){
                                                makeFeatures(taxonDescription, elInfoDetail, state, true);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("BW")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("BW")){
                         createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                     }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("BY")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("BY")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("BE")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("BE")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("BB")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("BB")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("HB")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("HB")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("HH")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("HH")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("HE")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("HE")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("MV")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("MV")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("NI")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("NI")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("NW")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("NW")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("RP")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("RP")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("SL")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("SL")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("SN")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("SN")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("ST")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("ST")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("SH")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("SH")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                        //create german federal states distribution status
-                                       if(elInfoDetail.getAttributeValue("standardname").equalsIgnoreCase("TH")){
+                                       if(elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME).equalsIgnoreCase("TH")){
                                            createGermanDistributionStatus(taxon, elInfoDetail, state, taxonDescription);
                                        }
                                }
@@ -692,8 +693,8 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
                String transformedRlKatValue = null;
                UUID featureUUID = null;
                UUID stateTermUUID = null;
-               String strRlKatValue = elInfoDetail.getChild("WERT").getValue();
-               String strRlKat = elInfoDetail.getAttributeValue("standardname");
+               String strRlKatValue = elInfoDetail.getChild(BfnXmlConstants.EL_WERT).getValue();
+               String strRlKat = elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME);
                boolean randomStateUUID = false;
                try {
                        featureUUID = BfnXmlTransformer.getRedlistFeatureUUID(strRlKat);
@@ -833,8 +834,8 @@ public class BfnXmlImportTaxonName extends BfnXmlImportBase {
     private void createGermanDistributionStatus(Taxon taxon, Element elInfoDetail, BfnXmlImportState state,
             TaxonDescription taxonDescription){
 
-        String strDistributionValue = elInfoDetail.getChild("WERT").getValue();
-        String strGermanState = elInfoDetail.getAttributeValue("standardname");
+        String strDistributionValue = elInfoDetail.getChild(BfnXmlConstants.EL_WERT).getValue();
+        String strGermanState = elInfoDetail.getAttributeValue(BfnXmlConstants.ATT_STANDARDNAME);
         //match DistributionValue
         UUID matchedDistributionUUID = null;
         PresenceAbsenceTerm status = null;
index 9feff271ff68a21662677ac11049cbb01f19fe0a..fe7ddd680b2d9c705d9f002e21af8ce73d09f913 100644 (file)
@@ -14,6 +14,7 @@ import java.util.UUID;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 
+import eu.etaxonomy.cdm.io.redlist.bfnXml.BfnXmlConstants;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;
@@ -26,7 +27,7 @@ import eu.etaxonomy.cdm.model.reference.PrintSeries;*/
 //import eu.etaxonomy.cdm.model.reference.WebPage;
 
 public final class BfnXmlTransformer {
-       @SuppressWarnings("unused")
+    @SuppressWarnings("unused")
        private static final Logger logger = Logger.getLogger(BfnXmlTransformer.class);
 
        //redList state Vocabularies
@@ -185,70 +186,70 @@ public final class BfnXmlTransformer {
        public static Rank rankCode2Rank (String strRank) throws UnknownCdmTypeException{
                if (strRank == null){return null;
                //genus group
-               }else if (strRank.equals("infragen")){return Rank.INFRAGENUS();
-               }else if (strRank.equals("subgen")){return Rank.SUBGENUS();
-               }else if (strRank.equals("gen")){return Rank.GENUS();
+               }else if (strRank.equals(BfnXmlConstants.RNK_INFRAGEN)){return Rank.INFRAGENUS();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBGEN)){return Rank.SUBGENUS();
+               }else if (strRank.equals(BfnXmlConstants.RNK_GEN)){return Rank.GENUS();
                //genus subdivision
                //TODO
-               }else if (strRank.equals("aggr")){return Rank.SPECIESAGGREGATE();
-               }else if (strRank.equals("agg.")){return Rank.SPECIESAGGREGATE();
-               }else if (strRank.equals("taxinfragen")){return Rank.INFRAGENERICTAXON();
-               }else if (strRank.equals("subser")){return Rank.SUBSERIES();
-               }else if (strRank.equals("ser")){return Rank.SERIES();
-               }else if (strRank.equals("subsect")){return Rank.SUBSECTION_BOTANY();
-               }else if (strRank.equals("sect")){return Rank.SECTION_BOTANY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_AGGR)){return Rank.SPECIESAGGREGATE();
+               }else if (strRank.equals(BfnXmlConstants.RNK_AGG)){return Rank.SPECIESAGGREGATE();
+               }else if (strRank.equals(BfnXmlConstants.RNK_TAXINFRAGEN)){return Rank.INFRAGENERICTAXON();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBSER)){return Rank.SUBSERIES();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SER)){return Rank.SERIES();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBSECT)){return Rank.SUBSECTION_BOTANY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SECT)){return Rank.SECTION_BOTANY();
                //species group
-               }else if (strRank.equals("subsp_aggr")){return Rank.SUBSPECIFICAGGREGATE();
-               }else if (strRank.equals("ssp")){return Rank.SUBSPECIES();
-               }else if (strRank.equals("subsp.")){return Rank.SUBSPECIES();
-               }else if (strRank.equals("subsp")){return Rank.SUBSPECIES();
-               }else if (strRank.equals("sp")){return Rank.SPECIES();
-               }else if (strRank.equals("spezies")){return Rank.SPECIES();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBSP_AGGR)){return Rank.SUBSPECIFICAGGREGATE();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SSP)){return Rank.SUBSPECIES();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBSP)){return Rank.SUBSPECIES();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBSP_DOT)){return Rank.SUBSPECIES();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SP)){return Rank.SPECIES();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SPEZIES)){return Rank.SPECIES();
                //below subspecies
-               }else if (strRank.equals("cand")){return Rank.CANDIDATE();
-               }else if (strRank.equals("taxinfrasp")){return Rank.INFRASPECIFICTAXON();
-               }else if (strRank.equals("fsp")){return Rank.SPECIALFORM();
-               }else if (strRank.equals("subsubfm")){return Rank.SUBSUBFORM();
-               }else if (strRank.equals("subfm")){return Rank.SUBFORM();
-               }else if (strRank.equals("fm")){return Rank.FORM();
-               }else if (strRank.equals("f.")){return Rank.FORM();
-               }else if (strRank.equals("subsubvar")){return Rank.SUBSUBVARIETY();
-               }else if (strRank.equals("subvar")){return Rank.SUBVARIETY();
-               }else if (strRank.equals("var")){return Rank.VARIETY();
-               }else if (strRank.equals("var.")){return Rank.VARIETY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_CAND)){return Rank.CANDIDATE();
+               }else if (strRank.equals(BfnXmlConstants.RNK_TAXINFRASP)){return Rank.INFRASPECIFICTAXON();
+               }else if (strRank.equals(BfnXmlConstants.RNK_FSP)){return Rank.SPECIALFORM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBSUBFM)){return Rank.SUBSUBFORM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBFM)){return Rank.SUBFORM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_FM)){return Rank.FORM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_F)){return Rank.FORM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBSUBVAR)){return Rank.SUBSUBVARIETY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBVAR)){return Rank.SUBVARIETY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_VAR)){return Rank.VARIETY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_VAR_DOT)){return Rank.VARIETY();
                //TODO -> see documentation, Bacteria status
 //             }else if (strRank.equals("pv")){return Rank;
 //             }else if (strRank.equals("bv")){return Rank.;
-               }else if (strRank.equals("infrasp")){return Rank.INFRASPECIES();
+               }else if (strRank.equals(BfnXmlConstants.RNK_INFRASP)){return Rank.INFRASPECIES();
                //above superfamily
-               }else if (strRank.equals("infraord")){return Rank.INFRAORDER();
-               }else if (strRank.equals("ord")){return Rank.ORDER();
-               }else if (strRank.equals("superord")){return Rank.SUPERORDER();
-               }else if (strRank.equals("infracl")){return Rank.INFRACLASS();
-               }else if (strRank.equals("subcl")){return Rank.SUBCLASS();
-               }else if (strRank.equals("cl")){return Rank.CLASS();
-               }else if (strRank.equals("supercl")){return Rank.SUPERCLASS();
-               }else if (strRank.equals("infraphyl_div")){return Rank.INFRAPHYLUM();
-               }else if (strRank.equals("subphyl_div")){return Rank.SUBPHYLUM();
-               }else if (strRank.equals("phyl_div")){return Rank.PHYLUM();
-               }else if (strRank.equals("superphyl_div")){return Rank.SUPERPHYLUM();
-               }else if (strRank.equals("infrareg")){return Rank.INFRAKINGDOM();
-               }else if (strRank.equals("subreg")){return Rank.SUBKINGDOM();
-               }else if (strRank.equals("reg")){return Rank.KINGDOM();
-               }else if (strRank.equals("superreg")){return Rank.SUPERKINGDOM();
-               }else if (strRank.equals("dom")){return Rank.DOMAIN();
-               }else if (strRank.equals("taxsupragen")){return Rank.SUPRAGENERICTAXON();
-               }else if (strRank.equals("Auswertungsgruppe")){return Rank.EMPIRE();
+               }else if (strRank.equals(BfnXmlConstants.RNK_INFRAORD)){return Rank.INFRAORDER();
+               }else if (strRank.equals(BfnXmlConstants.RNK_ORD)){return Rank.ORDER();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUPERORD)){return Rank.SUPERORDER();
+               }else if (strRank.equals(BfnXmlConstants.RNK_INFRACL)){return Rank.INFRACLASS();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBCL)){return Rank.SUBCLASS();
+               }else if (strRank.equals(BfnXmlConstants.RNK_CL)){return Rank.CLASS();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUPERCL)){return Rank.SUPERCLASS();
+               }else if (strRank.equals(BfnXmlConstants.RNK_INFRAPHYL_DIV)){return Rank.INFRAPHYLUM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBPHYL_DIV)){return Rank.SUBPHYLUM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_PHYL_DIV)){return Rank.PHYLUM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUPERPHYL_DIV)){return Rank.SUPERPHYLUM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_INFRAREG)){return Rank.INFRAKINGDOM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBREG)){return Rank.SUBKINGDOM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_REG)){return Rank.KINGDOM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUPERREG)){return Rank.SUPERKINGDOM();
+               }else if (strRank.equals(BfnXmlConstants.RNK_DOM)){return Rank.DOMAIN();
+               }else if (strRank.equals(BfnXmlConstants.RNK_TAXSUPRAGEN)){return Rank.SUPRAGENERICTAXON();
+               }else if (strRank.equals(BfnXmlConstants.RNK_AUSWERTUNGSGRUPPE)){return Rank.EMPIRE();
                //family group
-               }else if (strRank.equals("infrafam")){return Rank.FAMILY();
-               }else if (strRank.equals("subfam")){return Rank.FAMILY();
-               }else if (strRank.equals("fam")){return Rank.FAMILY();
-               }else if (strRank.equals("superfam")){return Rank.FAMILY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_INFRAFAM)){return Rank.FAMILY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBFAM)){return Rank.FAMILY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_FAM)){return Rank.FAMILY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUPERFAM)){return Rank.FAMILY();
                //family subdivision
-               }else if (strRank.equals("intratrib")){return Rank.FAMILY();
-               }else if (strRank.equals("subtrib")){return Rank.FAMILY();
-               }else if (strRank.equals("trib")){return Rank.FAMILY();
-               }else if (strRank.equals("supertrib")){return Rank.FAMILY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_INTRATRIB)){return Rank.FAMILY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUBTRIB)){return Rank.FAMILY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_TRIB)){return Rank.FAMILY();
+               }else if (strRank.equals(BfnXmlConstants.RNK_SUPERTRIB)){return Rank.FAMILY();
                }
                else {
                        throw new UnknownCdmTypeException("Unknown Rank " + strRank);
@@ -314,33 +315,33 @@ public final class BfnXmlTransformer {
 
        public static UUID getRedlistVocabularyUUID(String redListVocabulary) throws UnknownCdmTypeException {
 
-               if(redListVocabulary.equalsIgnoreCase("RL Kat.")) {
+               if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return vocStateRLKat;
-        }else if(redListVocabulary.equalsIgnoreCase("Kat. +/-")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_KAT)) {
             return vocStateRlKatDiff;
-        }else if(redListVocabulary.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return vocStateRlAkt;
-        }else if(redListVocabulary.equalsIgnoreCase("langfristiger Bestandstrend")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return vocStateRLLang;
-        }else if(redListVocabulary.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_KURZFRISTIGER_BESTANDSTREND)) {
             return vocStateRLKurz;
-        }else if(redListVocabulary.equalsIgnoreCase("Risikofaktoren")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_RISIKOFAKTOREN)) {
             return vocStateRLRisk;
-        }else if(redListVocabulary.equalsIgnoreCase("Verantwortlichkeit")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_VERANTWORTLICHKEIT)) {
             return vocStateRLResp;
-        }else if(redListVocabulary.equalsIgnoreCase("alte RL- Kat.")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return vocStateRLKatOld;
-        }else if(redListVocabulary.equalsIgnoreCase("Neobiota")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_NEOBIOTA)) {
             return vocStateRLNeo;
-        }else if(redListVocabulary.equalsIgnoreCase("Eindeutiger Code")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_EINDEUTIGER_CODE)) {
             return vocStateRLKatId;
-        }else if(redListVocabulary.equalsIgnoreCase("Sonderfälle")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_SONDERFAELLE)) {
             return vocStateRLSpecialCases;
-        }else if(redListVocabulary.equalsIgnoreCase("Vorkommensstatus")) {
+        }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_VORKOMMENSSTATUS)) {
                    return vocGermanPresenceTerms;
-               }else if(redListVocabulary.equalsIgnoreCase("Etablierungsstatus")) {
+               }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_ETABLIERUNGSSTATUS)) {
                    return vocGermanEstablishmentTerms;
-               }else if(redListVocabulary.equalsIgnoreCase("Bundesländer")) {
+               }else if(redListVocabulary.equalsIgnoreCase(BfnXmlConstants.VOC_BUNDESLAENDER)) {
             return vocGermanFederalStates;
         } else{
                        throw new UnknownCdmTypeException("Unknown Vocabulary feature, could not match: " + redListVocabulary);
@@ -351,34 +352,34 @@ public final class BfnXmlTransformer {
 
        public static UUID getRedlistFeatureUUID(String redListFeature) throws UnknownCdmTypeException {
 
-               if(redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return featureRLKat;
         }
-               if(redListFeature.equalsIgnoreCase("Kat. +/-")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KAT)) {
             return featureRlKatDiff;
         }
-               if(redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return featureRlAkt;
         }
-               if(redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return featureRLLang;
         }
-               if(redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KURZFRISTIGER_BESTANDSTREND)) {
             return featureRLKurz;
         }
-               if(redListFeature.equalsIgnoreCase("Risikofaktoren")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RISIKOFAKTOREN)) {
             return featureRLRisk;
         }
-               if(redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_VERANTWORTLICHKEIT)) {
             return featureRLResp;
         }
-               if(redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return featureRLKatOld;
         }
-               if(redListFeature.equalsIgnoreCase("Neobiota")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_NEOBIOTA)) {
             return featureRLNeo;
         }
-               if(redListFeature.equalsIgnoreCase("Eindeutiger Code")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_EINDEUTIGER_CODE)) {
             return featureRLKatId;
         }
                if(redListFeature.equalsIgnoreCase("Kommentar zur Taxonomie")) {
@@ -387,7 +388,7 @@ public final class BfnXmlTransformer {
                if(redListFeature.equalsIgnoreCase("Kommentar zur Gefährdung")) {
             return featureRLHazardComment;
         }
-               if(redListFeature.equalsIgnoreCase("Sonderfälle")) {
+               if(redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_SONDERFAELLE)) {
             return featureRLSpecialCases;
         }
                if(redListFeature.equalsIgnoreCase("Letzter Nachweis")) {
@@ -404,207 +405,207 @@ public final class BfnXmlTransformer {
        public static UUID getRedlistStateTermUUID(String redListStateTerm, String redListFeature) throws UnknownCdmTypeException {
                //RL Kat
                char a = 0x2666;
-               if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKat0;
         }
-               if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKat1;
         }
-               if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKat2;
         }
-               if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKat3;
         }
-               if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKatG;
         }
-               if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKatR;
         }
-               if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKatV;
         }
-               if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKatStar;
         }
-               if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKatStar2;
         }
-               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKatD;
         }
-               if(redListStateTerm.equalsIgnoreCase(String.valueOf(a)) && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase(String.valueOf(a)) && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKatDiamond;
         }
-               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("RL Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RL_KAT)) {
             return stateTermRlKatKN;
         }
 
                //RL Diff
-               if(redListStateTerm.equalsIgnoreCase("+") && redListFeature.equalsIgnoreCase("Kat. +/-")) {
+               if(redListStateTerm.equalsIgnoreCase("+") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KAT)) {
             return stateTermRLKatDiffPlus;
         }
-               if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase("Kat. +/-")) {
+               if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KAT)) {
             return stateTermRLKatDiffMinus;
         }
-               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("Kat. +/-")) {
+               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KAT)) {
             return stateTermRLKatDiffEqual;
         }
 
                //Rl Akt
-               if(redListStateTerm.equalsIgnoreCase("ex") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("ex") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktEx;
         }
-               if(redListStateTerm.equalsIgnoreCase("es") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("es") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktEs;
         }
-               if(redListStateTerm.equalsIgnoreCase("ss") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("ss") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktSs;
         }
-               if(redListStateTerm.equalsIgnoreCase("s") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("s") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktS;
         }
-               if(redListStateTerm.equalsIgnoreCase("mh") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("mh") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktMh;
         }
-               if(redListStateTerm.equalsIgnoreCase("h") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("h") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktH;
         }
-               if(redListStateTerm.equalsIgnoreCase("sh") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("sh") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktSh;
         }
-               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktQuest;
         }
-               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktNb;
         }
-               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("aktuelle Bestandsstituation")) {
+               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_AKTUELLE_BESTANDSSTITUATION)) {
             return stateTermRLKatAktKn;
         }
 
                //RL Lang
-               if(redListStateTerm.equalsIgnoreCase("<<<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("<<<") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatLangLT3;
         }
-               if(redListStateTerm.equalsIgnoreCase("<<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("<<") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatLangLT2;
         }
-               if(redListStateTerm.equalsIgnoreCase("<") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("<") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatLangLT1;
         }
-               if(redListStateTerm.equalsIgnoreCase("(<)") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("(<)") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatLangLT;
         }
-               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatLangEqual;
         }
-               if(redListStateTerm.equalsIgnoreCase(">") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase(">") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatLangGT;
         }
-               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("langfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_LANGFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatLangQuest;
         }
 
                //RL Kurz
                char c = 0x2193;
                char b = 0x2191;
-               if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KURZFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatKurzDown3;
         }
-               if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase(String.valueOf(c)+String.valueOf(c)) && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KURZFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatKurzDown2;
         }
-               if(redListStateTerm.equalsIgnoreCase("("+String.valueOf(c)+")") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("("+String.valueOf(c)+")") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KURZFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatKurzDown1;
         }
-               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KURZFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatKurzEqual;
         }
-               if(redListStateTerm.equalsIgnoreCase(String.valueOf(b)) && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase(String.valueOf(b)) && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KURZFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatKurzUp;
         }
-               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("kurzfristiger Bestandstrend")) {
+               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_KURZFRISTIGER_BESTANDSTREND)) {
             return stateTermRLKatKurzQuest;
         }
 
                //RL Risk
-               if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase("Risikofaktoren")) {
+               if(redListStateTerm.equalsIgnoreCase("-") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RISIKOFAKTOREN)) {
             return stateTermRLKatRiskMinus;
         }
-               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase("Risikofaktoren")) {
+               if(redListStateTerm.equalsIgnoreCase("=") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_RISIKOFAKTOREN)) {
             return stateTermRLKatRiskEqual;
         }
 
                //RL Resp
-               if(redListStateTerm.equalsIgnoreCase("!!") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
+               if(redListStateTerm.equalsIgnoreCase("!!") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_VERANTWORTLICHKEIT)) {
             return stateTermRLKatRespBang2;
         }
-               if(redListStateTerm.equalsIgnoreCase("!") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
+               if(redListStateTerm.equalsIgnoreCase("!") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_VERANTWORTLICHKEIT)) {
             return stateTermRLKatRespBang1;
         }
-               if(redListStateTerm.equalsIgnoreCase("(!)") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
+               if(redListStateTerm.equalsIgnoreCase("(!)") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_VERANTWORTLICHKEIT)) {
             return stateTermRLKatRespBang;
         }
-               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
+               if(redListStateTerm.equalsIgnoreCase("?") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_VERANTWORTLICHKEIT)) {
             return stateTermRLKatRespQuest;
         }
-               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("Verantwortlichkeit")) {
+               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_VERANTWORTLICHKEIT)) {
             return stateTermRLKatRespNb;
         }
 
                //RL Kat Old
-               if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("0") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOld0;
         }
-               if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("1") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOld1;
         }
-               if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("2") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOld2;
         }
-               if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("3") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOld3;
         }
-               if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("G") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOldG;
         }
-               if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("R") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOldR;
         }
-               if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("V") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOldV;
         }
-               if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("*") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOldStar;
         }
-               if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("**") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOldStar2;
         }
-               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOldD;
         }
-               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("nb") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOldNb;
         }
-               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase("alte RL- Kat.")) {
+               if(redListStateTerm.equalsIgnoreCase("kN") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_ALTE_RL_KAT)) {
             return stateTermRLKatOldKn;
         }
 
                //RL Neo
-               if(redListStateTerm.equalsIgnoreCase("N") && redListFeature.equalsIgnoreCase("Neobiota")) {
+               if(redListStateTerm.equalsIgnoreCase("N") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_NEOBIOTA)) {
             return stateTermRLKatNeo;
         }
 
                //RL Special
-               if(redListStateTerm.equalsIgnoreCase("S") && redListFeature.equalsIgnoreCase("Sonderfälle")) {
+               if(redListStateTerm.equalsIgnoreCase("S") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_SONDERFAELLE)) {
             return stateTermRLSpecialS;
         }
-               if(redListStateTerm.equalsIgnoreCase("E") && redListFeature.equalsIgnoreCase("Sonderfälle")) {
+               if(redListStateTerm.equalsIgnoreCase("E") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_SONDERFAELLE)) {
             return stateTermRLSpecialE;
         }
-               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase("Sonderfälle")) {
+               if(redListStateTerm.equalsIgnoreCase("D") && redListFeature.equalsIgnoreCase(BfnXmlConstants.VOC_SONDERFAELLE)) {
             return stateTermRLSpecialD;
         }