some import changes
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 2 Sep 2010 14:27:49 +0000 (14:27 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 2 Sep 2010 14:27:49 +0000 (14:27 +0000)
app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/CentralAfricaEricaceaeActivator.java
app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/EfloraSources.java
app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/FloraMalesianaActivator.java
app-import/src/main/java/eu/etaxonomy/cdm/io/eflora/centralAfrica/ericaceae/CentralAfricaEricaceaeImportConfigurator.java
app-import/src/main/java/eu/etaxonomy/cdm/io/eflora/centralAfrica/ericaceae/CentralAfricaEricaceaeImportState.java
app-import/src/main/java/eu/etaxonomy/cdm/io/eflora/centralAfrica/ericaceae/CentralAfricaEricaceaeTaxonImport.java
app-import/src/main/java/eu/etaxonomy/cdm/io/eflora/centralAfrica/ericaceae/CentralAfricaEricaceaeTransformer.java
app-import/src/main/java/eu/etaxonomy/cdm/io/eflora/centralAfrica/ferns/CentralAfricaFernsTransformer.java

index 109869f6942810821b672b5e3b612f84ee2a3519..df02bfc5dc4d359cace99b643746559799ad82cf 100644 (file)
@@ -25,7 +25,7 @@ import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
 import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;\r
 import eu.etaxonomy.cdm.io.eflora.EfloraImportConfigurator;\r
 import eu.etaxonomy.cdm.io.eflora.centralAfrica.ericaceae.CentralAfricaEricaceaeImportConfigurator;\r
-import eu.etaxonomy.cdm.io.eflora.floraMalesiana.FloraMalesianaTransformer;\r
+import eu.etaxonomy.cdm.io.eflora.centralAfrica.ericaceae.CentralAfricaEricaceaeTransformer;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.FeatureNode;\r
 import eu.etaxonomy.cdm.model.description.FeatureTree;\r
@@ -42,14 +42,14 @@ public class CentralAfricaEricaceaeActivator {
        private static final Logger logger = Logger.getLogger(CentralAfricaEricaceaeActivator.class);\r
        \r
        //database validation status (create, update, validate ...)\r
-       static DbSchemaValidation hbm2dll = DbSchemaValidation.VALIDATE;\r
+       static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;\r
        static final String source = EfloraSources.ericacea_local();\r
 \r
        \r
 //     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_andreasM3();\r
-       static final ICdmDataSource cdmDestination = CdmDestinations.cdm_flora_central_africa_preview();\r
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_flora_central_africa_preview();\r
 //     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_flora_central_africa_production();\r
-//     static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
+       static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
 \r
        //feature tree uuid\r
        public static final UUID featureTreeUuid = UUID.fromString("051d35ee-22f1-42d8-be07-9e9bfec5bcf7");\r
@@ -65,7 +65,7 @@ public class CentralAfricaEricaceaeActivator {
        //taxa\r
        static final boolean doTaxa = true;\r
 \r
-       private boolean includeSapindaceae1 = true;\r
+       private boolean includeEricaceae = true;\r
 \r
 \r
        \r
@@ -83,7 +83,7 @@ public class CentralAfricaEricaceaeActivator {
 \r
                \r
                //Sapindaceae1\r
-               if (includeSapindaceae1){\r
+               if (includeEricaceae){\r
                        System.out.println("Start import from ("+ source.toString() + ") ...");\r
                        config.setSourceReference(getSourceReference(config.getSourceReferenceTitle()));\r
                        myImport.invoke(config);\r
@@ -114,16 +114,13 @@ public class CentralAfricaEricaceaeActivator {
        }\r
 \r
        private FeatureTree makeFeatureNode(ITermService service){\r
-               FloraMalesianaTransformer transformer = new FloraMalesianaTransformer();\r
+               CentralAfricaEricaceaeTransformer transformer = new CentralAfricaEricaceaeTransformer();\r
                \r
                FeatureTree result = FeatureTree.NewInstance(featureTreeUuid);\r
-               result.setTitleCache("Flora Malesiana Presentation Feature Tree");\r
+               result.setTitleCache("Central Africa Ericaceae Feature Tree");\r
                FeatureNode root = result.getRoot();\r
                FeatureNode newNode;\r
                \r
-               newNode = FeatureNode.NewInstance(Feature.CITATION());\r
-               root.addChild(newNode);\r
-               \r
                newNode = FeatureNode.NewInstance(Feature.DESCRIPTION());\r
                root.addChild(newNode);\r
                \r
@@ -143,6 +140,12 @@ public class CentralAfricaEricaceaeActivator {
                root.addChild(newNode);\r
                \r
                addFeataureNodesByStringList(chomosomesList, root, transformer, service);\r
+\r
+               newNode = FeatureNode.NewInstance(Feature.COMMON_NAME());\r
+               root.addChild(newNode);\r
+               \r
+               newNode = FeatureNode.NewInstance(Feature.CITATION());\r
+               root.addChild(newNode);\r
                \r
                return result;\r
        }\r
index 6bfdff0d5380b92c498ed9a32e5dc2bf039e4b68..490a2acfbc32a29a103fc636f1e3f0a378e276ee 100644 (file)
@@ -22,7 +22,7 @@ public class EfloraSources {
 \r
        //Ericaceae\r
        public static String ericacea_local(){\r
-               String sourceUrl = "file:C:/localCopy/Data/eflora/africa/ericaceae.xml";\r
+               String sourceUrl = "file:C:/localCopy/Data/eflora/africa/ericaceae_v2.xml";\r
                return sourceUrl;\r
        }\r
        \r
index 53adb5097e9911bf038a2af9852f4da70a8a82f1..3e04f28d1e95d896bf73257d70f2df5e11a5e24f 100644 (file)
@@ -154,9 +154,6 @@ public class FloraMalesianaActivator {
                FeatureNode root = result.getRoot();\r
                FeatureNode newNode;\r
                \r
-               newNode = FeatureNode.NewInstance(Feature.CITATION());\r
-               root.addChild(newNode);\r
-               \r
                newNode = FeatureNode.NewInstance(Feature.DESCRIPTION());\r
                root.addChild(newNode);\r
                \r
@@ -176,6 +173,9 @@ public class FloraMalesianaActivator {
                root.addChild(newNode);\r
                \r
                addFeataureNodesByStringList(chomosomesList, root, transformer, service);\r
+\r
+               newNode = FeatureNode.NewInstance(Feature.CITATION());\r
+               root.addChild(newNode);\r
                \r
                return result;\r
        }\r
index 07488af38e42cb272c7a711ac8078106d2348088..6355def83df91228a10340019035ceebf85279ac 100644 (file)
@@ -13,6 +13,7 @@ import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;\r
 \r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;\r
 import eu.etaxonomy.cdm.io.eflora.EfloraImportConfigurator;\r
 \r
 @Component\r
@@ -24,6 +25,7 @@ public class CentralAfricaEricaceaeImportConfigurator extends EfloraImportConfig
                return new CentralAfricaEricaceaeImportConfigurator(url, destination);\r
        }\r
        \r
+       private static IInputTransformer defaultTransformer = new CentralAfricaEricaceaeTransformer();\r
        private String classificationTitle = "Flore d'Afrique Centrale - Ericaceae";\r
        private String sourceReferenceTitle = "Flore d'Afrique Centrale - Ericaceae";\r
        \r
@@ -47,7 +49,7 @@ public class CentralAfricaEricaceaeImportConfigurator extends EfloraImportConfig
         * @param destination\r
         */\r
        private CentralAfricaEricaceaeImportConfigurator(String url, ICdmDataSource destination) {\r
-               super(url, destination);\r
+               super(url, destination, defaultTransformer);\r
                this.setClassificationTitle(classificationTitle);\r
                this.setSourceReferenceTitle(sourceReferenceTitle);\r
        }\r
index 02ed4952583a51e3c5933524a4bec103139090d5..312954622fa0aa656427c9e7f7473da1349e46ad 100644 (file)
@@ -18,6 +18,7 @@ import eu.etaxonomy.cdm.io.eflora.EfloraImportState;
  *\r
  */\r
 public class CentralAfricaEricaceaeImportState extends EfloraImportState{\r
+       @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(CentralAfricaEricaceaeImportState.class);\r
 \r
 // ******************************* CONSTRUCTOR **********************************************\r
index 809884864bfdd7118f9c47777a4b4b2700becd94..b57e0d6e802f26ebe04a98a8c57b37dd9023b7b4 100644 (file)
@@ -9,10 +9,39 @@
 \r
 package eu.etaxonomy.cdm.io.eflora.centralAfrica.ericaceae;\r
 \r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.regex.Matcher;\r
+import java.util.regex.Pattern;\r
+\r
+import org.apache.commons.lang.StringUtils;\r
 import org.apache.log4j.Logger;\r
+import org.jdom.Element;\r
 import org.springframework.stereotype.Component;\r
 \r
+import eu.etaxonomy.cdm.common.CdmUtils;\r
+import eu.etaxonomy.cdm.ext.ipni.IpniService;\r
+import eu.etaxonomy.cdm.io.eflora.EfloraImportState;\r
 import eu.etaxonomy.cdm.io.eflora.EfloraTaxonImport;\r
+import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;\r
+import eu.etaxonomy.cdm.model.agent.Person;\r
+import eu.etaxonomy.cdm.model.agent.Team;\r
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.TimePeriod;\r
+import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.description.TextData;\r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.name.NameTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.NonViralName;\r
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationBase;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 \r
 \r
 /**\r
@@ -24,4 +53,255 @@ public class CentralAfricaEricaceaeTaxonImport  extends EfloraTaxonImport  {
        private static final Logger logger = Logger.getLogger(CentralAfricaEricaceaeTaxonImport.class);\r
 \r
 \r
+\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.io.eflora.EfloraTaxonImport#handleNomenclaturalReference(eu.etaxonomy.cdm.model.name.NonViralName, java.lang.String)\r
+        */\r
+       @Override\r
+       protected TeamOrPersonBase handleNomenclaturalReference(NonViralName name, String value) {\r
+               ReferenceBase nomRef = ReferenceFactory.newGeneric();\r
+               nomRef.setTitleCache(value, true);\r
+               parseNomStatus(nomRef, name);\r
+               name.setNomenclaturalReference(nomRef);\r
+               \r
+               String microReference = parseReferenceYearAndDetail(nomRef);\r
+               \r
+               microReference = parseHomonym(microReference, name);\r
+               name.setNomenclaturalMicroReference(microReference);\r
+               \r
+               TeamOrPersonBase  nameTeam = CdmBase.deproxy(name.getCombinationAuthorTeam(), TeamOrPersonBase.class);\r
+               if (nameTeam == null ){\r
+                       logger.warn("Name has nom. ref. but no author team. Name: " + name.getTitleCache() + ", Nom.Ref.: " + value);\r
+               }else if (nomRef.getAuthorTeam() == null ){\r
+                       logger.warn("Name has nom. ref. but no nom.ref. author. Name: " + name.getTitleCache() + ", Nom.Ref.: " + value);\r
+               }else if (! authorTeamsMatch(nomRef.getAuthorTeam(), nameTeam)){\r
+                       logger.warn("Nom.Ref. author and comb. author do not match: " + nomRef.getTitleCache() + " <-> " + nameTeam.getNomenclaturalTitle());\r
+               }else {\r
+                       nomRef.setAuthorTeam(nameTeam);\r
+                       nameTeam.setTitleCache(nomRef.getAuthorTeam().getTitleCache(), true);\r
+               }\r
+               return nameTeam;\r
+       }\r
+       \r
+       /**\r
+        * Extracts the date published part and returns micro reference\r
+        * @param ref\r
+        * @return\r
+        */\r
+       protected String parseReferenceYearAndDetail(ReferenceBase ref){\r
+               String detailResult = null;\r
+               String titleToParse = ref.getTitleCache();\r
+               titleToParse = removeReferenceBracket(titleToParse, ref);\r
+               \r
+               int detailStart = titleToParse.indexOf(":");\r
+               if (detailStart >=  0){\r
+                       detailResult = titleToParse.substring(detailStart + 1);\r
+                       titleToParse = titleToParse.substring(0, titleToParse.length() -  detailResult.length() - 1).trim();\r
+                       detailResult = detailResult.trim();\r
+               }\r
+               \r
+               String reYear = "\\s[1-2]{1}[0-9]{3}";\r
+               String reYearPeriod = reYear;\r
+//             \r
+//             //pattern for the whole string\r
+               Pattern patReference = Pattern.compile( reYearPeriod );\r
+               Matcher matcher = patReference.matcher(titleToParse);\r
+               if (matcher.find()){\r
+                       int start = matcher.start();\r
+                       int end = matcher.end();\r
+//                     \r
+                       String strPeriod = titleToParse.substring(start, end);\r
+                       TimePeriod datePublished = TimePeriod.parseString(strPeriod);\r
+                       ref.setDatePublished(datePublished);\r
+                       String author = titleToParse.substring(0, start).trim();\r
+                       Team team = Team.NewTitledInstance(author, author);\r
+                       ref.setAuthorTeam(team);\r
+                       ref.setProtectedTitleCache(false);\r
+               }else{\r
+                       logger.warn("Could not parse reference: " +  titleToParse);\r
+               }\r
+               return detailResult;\r
+               \r
+       }\r
+\r
+       private String removeReferenceBracket(String refString, ReferenceBase ref) {\r
+               String titleToParse = refString;\r
+               String reBracket = "\\(.*\\).?";\r
+               Pattern patBracket = Pattern.compile(reBracket);\r
+               Matcher matcher = patBracket.matcher(titleToParse);\r
+               \r
+               if (matcher.matches()){\r
+                       int start = matcher.start() + 1;\r
+                       int end = matcher.end() -1 ;\r
+                       if (! titleToParse.endsWith("")){\r
+                               end = end - 1;\r
+                       }\r
+                       titleToParse = titleToParse.substring(start, end);\r
+                       \r
+                       ref.setTitleCache(titleToParse);\r
+               }\r
+               return titleToParse;\r
+       }\r
+       \r
+       /**\r
+        * @param taxon\r
+        * @param name\r
+        * @param value\r
+        */\r
+       @Override\r
+       protected TeamOrPersonBase handleNameUsage(Taxon taxon, NonViralName name, String referenceTitle, TeamOrPersonBase lastTeam) {\r
+               ReferenceBase ref = ReferenceFactory.newGeneric();\r
+               \r
+               ref.setTitleCache(referenceTitle, true);\r
+               \r
+               TeamOrPersonBase team = getReferenceAuthor(ref, name);\r
+               ref.setAuthorTeam(team);\r
+       \r
+               String[] multipleReferences = ref.getTitleCache().split("&");\r
+               \r
+               TaxonDescription description = getDescription(taxon);\r
+               for (String singleReferenceString : multipleReferences){\r
+                       ReferenceBase singleRef = ReferenceFactory.newGeneric();\r
+                       singleRef.setTitleCache(singleReferenceString, true);\r
+                       singleRef.setAuthorTeam(team);\r
+                       \r
+                       String microReference = parseReferenceYearAndDetailForUsage(singleRef);\r
+                       \r
+       //              parseReferenceType(ref);\r
+                       \r
+                       TextData textData = TextData.NewInstance(Feature.CITATION());\r
+                       textData.addSource(null, null, ref, microReference, name, null);\r
+                       description.addElement(textData);\r
+               }\r
+               return team;\r
+       }\r
+\r
+       private String parseReferenceYearAndDetailForUsage(ReferenceBase ref) {\r
+               String detailResult = null;\r
+               String titleToParse = ref.getTitleCache().trim();\r
+               \r
+               int detailStart = titleToParse.indexOf(":");\r
+               if (detailStart >=  0){\r
+                       detailResult = titleToParse.substring(detailStart + 1);\r
+                       titleToParse = titleToParse.substring(0, titleToParse.length() -  detailResult.length() - 1).trim();\r
+                       detailResult = detailResult.trim();\r
+               }\r
+               \r
+               String reYear = "^[1-2]{1}[0-9]{3}[a-e]?$";\r
+               String reYearPeriod = reYear;\r
+//                     \r
+//                     //pattern for the whole string\r
+               Pattern patReference = Pattern.compile( reYearPeriod );\r
+               Matcher matcher = patReference.matcher(titleToParse);\r
+               if (! matcher.find()){\r
+                       logger.warn("Could not parse year: " +  titleToParse);\r
+               }\r
+               TimePeriod datePublished = TimePeriod.parseString(titleToParse);\r
+               ref.setDatePublished(datePublished);\r
+               return detailResult;\r
+               \r
+       }\r
+\r
+       protected TeamOrPersonBase getReferenceAuthor (ReferenceBase ref, NonViralName name) {\r
+               String titleString = ref.getTitleCache();\r
+               String re = "\\(.*\\)";\r
+               Pattern pattern = Pattern.compile(re);\r
+               Matcher matcher = pattern.matcher(titleString);\r
+               if (matcher.find()){\r
+                       int start = matcher.start();\r
+                       String authorString = titleString.substring(0, start).trim();\r
+                       String restString = titleString.substring(start + 1 , matcher.end() - 1);\r
+                       TeamOrPersonBase team = getAuthorTeam(authorString, name);\r
+                       ref.setTitleCache(restString, true);\r
+                       return team;\r
+               }else{\r
+                       logger.warn("Title does not match: " + titleString);\r
+                       return null;\r
+               }\r
+               \r
+       }\r
+\r
+       private TeamOrPersonBase getAuthorTeam(String authorString, NonViralName name) {\r
+               //TODO atomize\r
+//             TeamOrPersonBase nameTeam = CdmBase.deproxy(name.getCombinationAuthorTeam(), TeamOrPersonBase.class);\r
+//             String nameTeamTitle = nameTeam == null ? "" : nameTeam.getNomenclaturalTitle();\r
+               \r
+//             if (nameTeam == null || ! authorTeamsMatch(authorString, nameTeamTitle)){\r
+//                     logger.warn("Author teams do not match: " + authorString + " <-> " + nameTeamTitle);\r
+                       Team result = Team.NewInstance();\r
+                       result.setTitleCache(authorString, true);\r
+                       return result;\r
+//             }else{\r
+//                     nameTeam.setTitleCache(authorString, true);\r
+//                     return nameTeam;\r
+//             }\r
+       }\r
+\r
+       /**\r
+        * @param refAuthorTeam\r
+        * @param nameTeam\r
+        * @return\r
+        */\r
+       private boolean authorTeamsMatch(TeamOrPersonBase refAuthorTeam, TeamOrPersonBase nameTeam) {\r
+               String nameTeamString = nameTeam.getNomenclaturalTitle();\r
+               String refAuthorTeamString = refAuthorTeam.getTitleCache();\r
+               if (nameTeamString.equalsIgnoreCase(refAuthorTeamString)){\r
+                       return true;\r
+               }\r
+               \r
+               if (nameTeamString.endsWith(".")){\r
+                       nameTeamString = nameTeamString.substring(0, nameTeamString.length() - 1 );\r
+                       if (refAuthorTeamString.startsWith(nameTeamString)){\r
+                               return true;\r
+                       }else{\r
+                               return checkIpniAuthor(nameTeamString + ".", refAuthorTeam);\r
+                       }\r
+               }else{\r
+                       if (nameTeamString.endsWith(refAuthorTeamString) || refAuthorTeamString.endsWith(nameTeamString)){\r
+                               return true;\r
+                       }else{\r
+                               return checkIpniAuthor(nameTeamString, refAuthorTeam);\r
+                       }\r
+               }\r
+       }\r
+       \r
+       private boolean checkIpniAuthor(String nameTeamString, TeamOrPersonBase refAuthorTeam) {\r
+               IpniService ipniService = new IpniService();\r
+               List<Person> ipniAuthors = ipniService.getAuthors(nameTeamString, null, null, null, null, null);\r
+               for (Person ipniAuthor : ipniAuthors){\r
+                       if (ipniAuthor.getLastname() != null && ipniAuthor.getLastname().equalsIgnoreCase(refAuthorTeam.getTitleCache())){\r
+                               return true;\r
+                       }\r
+                       System.out.println(ipniAuthor.getTitleCache() + " <-> " + refAuthorTeam.getTitleCache());\r
+               }\r
+               return false;\r
+       }\r
+\r
+       /**\r
+        * @param state\r
+        * @param elNom\r
+        * @param taxon\r
+        * @param homotypicalGroup \r
+        */\r
+       @Override\r
+       protected void handleTypeRef(EfloraImportState state, Element elNom, Taxon taxon, HomotypicalGroup homotypicalGroup) {\r
+               verifyNoChildren(elNom);\r
+               String typeRef = elNom.getTextNormalize();\r
+               typeRef = removeStartingTypeRefMinus(typeRef);\r
+               typeRef = removeTypePrefix(typeRef);\r
+               TypeDesignationBase typeDesignation = SpecimenTypeDesignation.NewInstance();\r
+               makeSpecimenTypeDesignation(new StringBuffer("Type"), typeRef, typeDesignation);\r
+               for (TaxonNameBase name : homotypicalGroup.getTypifiedNames()){\r
+                       name.addTypeDesignation(typeDesignation, true);\r
+               }\r
+       }\r
+\r
+       private String removeTypePrefix(String typeRef) {\r
+               typeRef = typeRef.trim().replace("Type: ", "").replace("Types: ", "").trim();\r
+               return typeRef;\r
+       }\r
+\r
+       \r
+       \r
 }\r
index 9a379314af6b7d29b0843ff8b8e83023e2f04594..d4f6212a3dff4b0f4eca1d871cf188f37ea69baa 100644 (file)
 \r
 package eu.etaxonomy.cdm.io.eflora.centralAfrica.ericaceae;\r
 \r
+import java.util.UUID;\r
+\r
 import org.apache.log4j.Logger;\r
 \r
+import eu.etaxonomy.cdm.common.CdmUtils;\r
+import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;\r
 import eu.etaxonomy.cdm.io.eflora.EfloraTransformer;\r
 \r
 /**\r
@@ -23,4 +27,46 @@ public final class CentralAfricaEricaceaeTransformer extends EfloraTransformer {
        @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(CentralAfricaEricaceaeTransformer.class);\r
        \r
+       //Languages\r
+       private static final UUID uuidKinyarwanda = UUID.fromString("95d170f5-7654-42bf-8293-c3584191a45a");\r
+       private static final UUID uuidKibemba = UUID.fromString("6069b231-101a-4a7b-84c5-4116b92db99c");\r
+       private static final UUID uuidMashi = UUID.fromString("fca40807-6b89-49c9-9a4a-9e0b7a928309");\r
+       private static final UUID uuidKihavu = UUID.fromString("050821ee-fac0-4c82-837d-f0a3d2206eb3");\r
+       private static final UUID uuidKinande = UUID.fromString("9ba45e39-86af-4200-b578-c45f8425acad");\r
+       private static final UUID uuidKihunde = UUID.fromString("8077644c-6deb-48de-a9d0-a649201184ed");\r
+       private static final UUID uuidKiluba = UUID.fromString("a90ac2df-3391-4cf7-91c5-b32c2f32a068");\r
+       private static final UUID uuidKitabwa = UUID.fromString("a8008e51-01a7-4432-8bf7-4b18fa60a1c7");\r
+       private static final UUID uuidKibatwa = UUID.fromString("b0130472-3ab1-4bb9-9605-0bf7b3d5c798");\r
+       private static final UUID uuidKinyanga = UUID.fromString("706661cb-0086-4fd7-a421-7476850b34f9");\r
+       private static final UUID uuidKirundi = UUID.fromString("089cab72-d673-42de-83e8-d20ff6937986");\r
+       private static final UUID uuidKinyindu = UUID.fromString("e4e405fe-4ff0-46b9-bd1e-bf09d1a6f3a9");\r
+       private static final UUID uuidKifulero = UUID.fromString("6cadd25c-b2f3-4d5b-a44e-cb88d0f184fe");\r
+       private static final UUID uuidKitembo = UUID.fromString("09a7da83-0e1f-42ae-886b-88675800d245");\r
+       private static final UUID uuidKinyabongo = UUID.fromString("cae69a27-77f9-46db-b7ea-646c0c037cfe");\r
+\r
+       \r
+       @Override\r
+       public UUID getLanguageUuid(String key) throws UndefinedTransformerMethodException {\r
+               if (CdmUtils.isEmpty(key)){return null;\r
+               \r
+               }else if (key.equalsIgnoreCase("Kinyarwanda")){return uuidKinyarwanda;\r
+               }else if (key.equalsIgnoreCase("Kibemba")){return uuidKibemba;\r
+               }else if (key.equalsIgnoreCase("Mashi")){return uuidMashi;\r
+               }else if (key.equalsIgnoreCase("Kihavu")){return uuidKihavu;\r
+               }else if (key.equalsIgnoreCase("Kinande")){return uuidKinande;\r
+               }else if (key.equalsIgnoreCase("Kihunde")){return uuidKihunde;\r
+               }else if (key.equalsIgnoreCase("Kiluba")){return uuidKiluba;\r
+               }else if (key.equalsIgnoreCase("Kitabwa")){return uuidKitabwa;\r
+               }else if (key.equalsIgnoreCase("Viele ")){return uuidKibatwa;\r
+               }else if (key.equalsIgnoreCase("Kinyanga")){return uuidKinyanga;\r
+               }else if (key.equalsIgnoreCase("Kirundi")){return uuidKirundi;\r
+               }else if (key.equalsIgnoreCase("Kinyindu")){return uuidKinyindu;\r
+               }else if (key.equalsIgnoreCase("Kifulero")){return uuidKifulero;\r
+               }else if (key.equalsIgnoreCase("Kitembo")){return uuidKitembo;\r
+               }else if (key.equalsIgnoreCase("Kinyabongo")){return uuidKinyabongo;\r
+               }else{\r
+                       return null;\r
+               }\r
+       }\r
+       \r
 }\r
index 5581f03c061bbe02bc31e6274fb4e8a09954f87b..0b20e24f4b4eceff4120c8731bed7de27d04ce3b 100644 (file)
@@ -29,8 +29,6 @@ public final class CentralAfricaFernsTransformer extends InputTransformerBase {
        @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(CentralAfricaFernsTransformer.class);\r
        \r
-\r
-       \r
        \r
 \r
        /* (non-Javadoc)\r
@@ -87,7 +85,8 @@ public final class CentralAfricaFernsTransformer extends InputTransformerBase {
                }\r
 \r
        }\r
-       \r
+\r
+\r
        \r
        \r
        \r