add FM13 import and some minor changes
authorAndreas Müller <a.mueller@bgbm.org>
Mon, 27 Jun 2011 08:40:08 +0000 (08:40 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Mon, 27 Jun 2011 08:40:08 +0000 (08:40 +0000)
.gitattributes
app-import/src/main/java/eu/etaxonomy/cdm/app/dwca/DwcaExportActivator.java
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/FloraMalesianaVol13Activator.java [new file with mode: 0644]

index dc856ed13120193a79d2f03044b4ad05a5f47475..5f2f5ef1d200d5911db159e8d7b443d86324d307 100644 (file)
@@ -32,6 +32,7 @@ app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/CentralAfricaEricaceaeActiv
 app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/CentralAfricaFernsActivator.java -text
 app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/EfloraSources.java -text
 app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/FloraMalesianaActivator.java -text
+app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/FloraMalesianaVol13Activator.java -text
 app-import/src/main/java/eu/etaxonomy/cdm/app/excelImport/distribution/CichorieaeDistributionActivator.java -text
 app-import/src/main/java/eu/etaxonomy/cdm/app/excelImport/taxa/NormalExplicitActivator.java -text
 app-import/src/main/java/eu/etaxonomy/cdm/app/exel/NormalExplicitTestActivator.java -text
index 359272a646195b386821f0a94ca7d255d097aadd..e3498862dbe2e1862c44d3f479e2cd33fc8db063 100644 (file)
@@ -19,6 +19,8 @@ import org.apache.log4j.Logger;
 import org.joda.time.DateTime;\r
 \r
 import eu.etaxonomy.cdm.app.common.CdmDestinations;\r
+import eu.etaxonomy.cdm.common.DefaultProgressMonitor;\r
+import eu.etaxonomy.cdm.common.IProgressMonitor;\r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
 import eu.etaxonomy.cdm.io.common.CdmDefaultExport;\r
 import eu.etaxonomy.cdm.io.common.IExportConfigurator.CHECK;\r
@@ -40,8 +42,20 @@ public class DwcaExportActivator {
 \r
        //database validation status (create, update, validate ...)\r
        private static final String fileDestination = "C:\\tmp\\dwcaTmp\\";\r
-       private static final ICdmDataSource cdmSource = CdmDestinations.cdm_test_local_mysql();\r
-//     private static final ICdmDataSource cdmSource = CdmDestinations.cdm_production_cichorieae();\r
+//     private static final ICdmDataSource cdmSource = CdmDestinations.cdm_local_cichorieae();\r
+//     private static final ICdmDataSource cdmSource = CdmDestinations.cdm_test_local_mysql();\r
+       private static final ICdmDataSource cdmSource = CdmDestinations.cdm_production_cichorieae();\r
+//     private static final ICdmDataSource cdmSource = CdmDestinations.cdm_flora_central_africa_production();\r
+\r
+       private IProgressMonitor monitor = DefaultProgressMonitor.NewInstance();\r
+       \r
+       private static DateTime dateTime = new DateTime();\r
+       private static String date = dateTime.getYear() + "-" + dateTime.getMonthOfYear() + "-" + dateTime.getDayOfMonth();\r
+       \r
+       private static final String defaultBibliographicCitation = "ICN (Hand, R., Kilian, N. & Raab-Straube, E. von; general editors) 2009+ (continuously updated): International Cichorieae Network: Cichorieae Portal. Published on the Internet at http://wp6-cichorieae.e-taxonomy.eu/portal/; " + \r
+               "accessed ["+date+"].";\r
+\r
+       private static final String taxonSourceDefault = "http://wp6-cichorieae.e-taxonomy.eu/portal/?q=cdm_dataportal/taxon/{id}";\r
        \r
        //check - import\r
        private static final CHECK check = CHECK.EXPORT_WITHOUT_CHECK;\r
@@ -49,7 +63,10 @@ public class DwcaExportActivator {
        private static List<UUID> featureExclusions = Arrays.asList(new UUID[]{\r
                        UUID.fromString("5deff505-1a32-4817-9a74-50e6936fd630"),   //occurrences\r
                        UUID.fromString("8075074c-ace8-496b-ac82-47c14553f7fd"),    //Editor_Parenthesis\r
-                       UUID.fromString("c0cc5ebe-1f0c-4c31-af53-d486858ea415")   //Image Sources\r
+                       UUID.fromString("c0cc5ebe-1f0c-4c31-af53-d486858ea415"),   //Image Sources\r
+                       UUID.fromString("9f6c551d-0f19-45ea-a855-4946f6fc1093"),                //Credits\r
+                       UUID.fromString("cbf12c6c-94e6-4724-9c48-0f6f10d83e1c"),   //Editor Brackets\r
+                       UUID.fromString("0508114d-4158-48b5-9100-369fa75120d3")     //inedited\r
        });\r
        \r
        \r
@@ -62,7 +79,7 @@ public class DwcaExportActivator {
        private boolean doReferences = true;\r
        private boolean doDescription = true;\r
        private boolean doDistributions = true;\r
-       private boolean doImages = true;\r
+       private boolean doImages = false;\r
        private boolean doMetaData = true;\r
        private boolean doEml = true;\r
 \r
@@ -111,6 +128,10 @@ public class DwcaExportActivator {
                config.setDoMetaData(doMetaData);\r
                config.setDoEml(doEml);\r
                config.setCheck(check);\r
+               config.setProgressMonitor(monitor);\r
+               config.setDefaultBibliographicCitation(defaultBibliographicCitation);\r
+               config.setDefaultTaxonSource(taxonSourceDefault);\r
+               monitor.beginTask("DwcA-Export", 10);\r
                \r
                config.setFeatureExclusions(featureExclusions);\r
                // invoke import\r
index 63691b3f35cd07739cbe6e5e0d083298f0171185..00005ce36b042b9de6cc95b7ca9acd0b81a127e6 100644 (file)
@@ -56,7 +56,7 @@ 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 URI source = EfloraSources.ericacea_local();\r
        \r
        static final URI specimenSource = EfloraSources.ericacea_specimen_local();\r
@@ -65,9 +65,9 @@ public class CentralAfricaEricaceaeActivator {
 //     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_production();\r
-//     static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
+       static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
 //     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_postgres_CdmTest();\r
-       static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();\r
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();\r
 //     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_jaxb();\r
 \r
        //feature tree uuid\r
@@ -84,10 +84,10 @@ public class CentralAfricaEricaceaeActivator {
        static boolean doPrintKeys = false;\r
        \r
        //taxa\r
-       static final boolean doTaxa = false;\r
+       private boolean includeEricaceae = true;\r
+       static final boolean doTaxa = true;\r
        static final boolean doDeduplicate = false;\r
 \r
-       private boolean includeEricaceae = false;\r
        \r
        private boolean doNewNamedAreas = false;\r
        private boolean doFeatureTree = false;\r
index b967726381e54d58615d76fe72c98b2da169b43a..7c827706722f388e6d8d1fac8e641f153c0c711d 100644 (file)
@@ -9,6 +9,7 @@
 */\r
 package eu.etaxonomy.cdm.app.eflora;\r
 \r
+import java.io.File;\r
 import java.net.URI;\r
 \r
 import org.apache.log4j.Logger;\r
@@ -50,6 +51,18 @@ public class EfloraSources {
        public static URI fm_13_2_local(){\r
                return URI.create("file:C:/localCopy/Data/eflora/floraMalesiana/fm13_2_v8_final.xml");\r
        }\r
+       \r
+       //Flora Malesiana Vol 13 - small families\r
+       public static URI fm_13_small_families(){\r
+               URI uri = URI.create("file:/C:/localCopy/Data/eflora/floraMalesiana/vol_13/vol_13_small_families.xml");\r
+               File file = new File(uri);\r
+               return uri;\r
+       }\r
+\r
+       //Flora Malesiana Vol 13 - large families\r
+       public static URI fm_13_large_families(){\r
+               return URI.create("file:C:/localCopy/Data/eflora/floraMalesiana/vol_13/xmlv8_large_families_vol_13.xml");\r
+       }\r
 \r
 \r
 }\r
diff --git a/app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/FloraMalesianaVol13Activator.java b/app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/FloraMalesianaVol13Activator.java
new file mode 100644 (file)
index 0000000..f893e37
--- /dev/null
@@ -0,0 +1,316 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.cdm.app.eflora;\r
+\r
+import java.net.URI;\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Set;\r
+import java.util.UUID;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.springframework.transaction.TransactionStatus;\r
+\r
+import eu.etaxonomy.cdm.api.service.ITermService;\r
+import eu.etaxonomy.cdm.app.common.CdmDestinations;\r
+import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
+import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+import eu.etaxonomy.cdm.io.common.CdmDefaultImport;\r
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;\r
+import eu.etaxonomy.cdm.io.common.events.IIoObserver;\r
+import eu.etaxonomy.cdm.io.common.events.LoggingIoObserver;\r
+import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;\r
+import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;\r
+import eu.etaxonomy.cdm.io.eflora.floraMalesiana.FloraMalesianaTransformer;\r
+import eu.etaxonomy.cdm.io.markup.MarkupImportConfigurator;\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
+import eu.etaxonomy.cdm.model.description.PolytomousKey;\r
+import eu.etaxonomy.cdm.model.reference.Reference;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @created 20.06.2008\r
+ * @version 1.0\r
+ */\r
+public class FloraMalesianaVol13Activator {\r
+       private static final Logger logger = Logger.getLogger(FloraMalesianaVol13Activator.class);\r
+       \r
+       //database validation status (create, update, validate ...)\r
+       static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;\r
+       static final URI fmSource13_small = EfloraSources.fm_13_small_families();\r
+       static final URI fmSource13_large = EfloraSources.fm_13_large_families();\r
+       \r
+       \r
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_andreasM3();\r
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_flora_malesiana_preview();\r
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_flora_malesiana_production();\r
+       static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();\r
+       \r
+\r
+       //feature tree uuid\r
+       public static final UUID featureTreeUuid = UUID.fromString("168df0c6-6429-484c-b26f-ded1f7e44bd9");\r
+       \r
+       //classification\r
+       static final UUID classificationUuid = UUID.fromString("ca4e4bcb-a1d1-4124-a358-a3d3c41dd450");\r
+       \r
+       //check - import\r
+       static final CHECK check = CHECK.CHECK_AND_IMPORT;\r
+       \r
+       static boolean doPrintKeys = false;\r
+       \r
+       //taxa\r
+       static final boolean doTaxa = true;\r
+\r
+       private boolean includeVol13_small = true;\r
+       private boolean includeVol13_large = false;\r
+\r
+       private IIoObserver observer = new LoggingIoObserver();\r
+       private Set<IIoObserver> observerList = new HashSet<IIoObserver>();\r
+       \r
+       \r
+       private void doImport(ICdmDataSource cdmDestination){\r
+               observerList.add(observer);\r
+               \r
+               //make Source\r
+               URI source = fmSource13_small;\r
+               MarkupImportConfigurator markupConfig= MarkupImportConfigurator.NewInstance(source, cdmDestination);\r
+               markupConfig.setClassificationUuid(classificationUuid);\r
+               markupConfig.setDoTaxa(doTaxa);\r
+               markupConfig.setCheck(check);\r
+               markupConfig.setDoPrintKeys(doPrintKeys);\r
+               markupConfig.setDbSchemaValidation(hbm2dll);\r
+               markupConfig.setObservers(observerList);\r
+               \r
+               CdmDefaultImport<MarkupImportConfigurator> myImport = new CdmDefaultImport<MarkupImportConfigurator>();\r
+\r
+\r
+               markupConfig.setSourceReference(getSourceReference("Flora Malesiana - Vol. 13"));\r
+               //Vol13_1\r
+               if (includeVol13_small){\r
+                       System.out.println("\nStart import from ("+ fmSource13_small.toString() + ") ...");\r
+                       source = fmSource13_small;\r
+                       markupConfig.setSource(source);\r
+                       myImport.invoke(markupConfig);\r
+                       System.out.println("End import from ("+ fmSource13_small.toString() + ")...");\r
+               }\r
+\r
+               //Vol13_2\r
+               if (includeVol13_large){\r
+                       System.out.println("\nStart import from ("+ fmSource13_large.toString() + ") ...");\r
+                       source = fmSource13_large;\r
+                       markupConfig.setSource(source);\r
+                       myImport.invoke(markupConfig);\r
+                       System.out.println("End import from ("+ fmSource13_large.toString() + ")...");\r
+               }\r
+               \r
+               FeatureTree tree = makeFeatureNode(myImport.getCdmAppController().getTermService());\r
+               myImport.getCdmAppController().getFeatureTreeService().saveOrUpdate(tree);\r
+               \r
+               //check keys\r
+               if (doPrintKeys){\r
+                       TransactionStatus tx = myImport.getCdmAppController().startTransaction();\r
+                       List<PolytomousKey> keys = myImport.getCdmAppController().getPolytomousKeyService().list(PolytomousKey.class, null, null, null, null);\r
+                       for(PolytomousKey key : keys){\r
+                               key.print(System.out);\r
+                               System.out.println();\r
+                       }\r
+                       myImport.getCdmAppController().commitTransaction(tx);\r
+               }\r
+               \r
+       }\r
+       \r
+       private Reference getSourceReference(String string) {\r
+               Reference result = ReferenceFactory.newGeneric();\r
+               result.setTitleCache(string);\r
+               return result;\r
+       }\r
+\r
+       private FeatureTree makeFeatureNode(ITermService service){\r
+               FloraMalesianaTransformer transformer = new FloraMalesianaTransformer();\r
+               \r
+               FeatureTree result = FeatureTree.NewInstance(featureTreeUuid);\r
+               result.setTitleCache("Flora Malesiana Presentation Feature Tree");\r
+               FeatureNode root = result.getRoot();\r
+               FeatureNode newNode;\r
+               \r
+               newNode = FeatureNode.NewInstance(Feature.DESCRIPTION());\r
+               root.addChild(newNode);\r
+               \r
+               addFeataureNodesByStringList(descriptionFeatureList, newNode, transformer, service);\r
+\r
+               addFeataureNodesByStringList(generellDescriptionsList, root, transformer, service);\r
+\r
+               \r
+               newNode = FeatureNode.NewInstance(Feature.DISTRIBUTION());\r
+               root.addChild(newNode);\r
+\r
+               newNode = FeatureNode.NewInstance(Feature.ECOLOGY());\r
+               root.addChild(newNode);\r
+               addFeataureNodesByStringList(habitatEcologyList, root, transformer, service);\r
+               \r
+               newNode = FeatureNode.NewInstance(Feature.USES());\r
+               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
+       \r
+       private static String [] chomosomesList = new String[]{\r
+               "Chromosomes", \r
+       };\r
+\r
+       \r
+       private static String [] habitatEcologyList = new String[]{\r
+               "Habitat",\r
+               "Habitat & Ecology"\r
+       };\r
+       \r
+       \r
+       private static String [] generellDescriptionsList = new String[]{\r
+               "Fossils",\r
+               "Morphology and anatomy",\r
+               "Morphology", \r
+               "Vegetative morphology and anatomy",\r
+               "Flower morphology",\r
+               "Palynology",  \r
+               "Pollination",  \r
+               "Pollen morphology",\r
+               "Life cycle",\r
+               "Fruits and embryology",\r
+               "Dispersal",\r
+               "Wood anatomy",  \r
+               "Leaf anatomy",  \r
+               "Chromosome numbers", \r
+               "Phytochemistry and Chemotaxonomy",\r
+               "Phytochemistry",\r
+               "Taxonomy",     \r
+       };\r
+\r
+       private static String [] descriptionFeatureList = new String[]{\r
+               "lifeform", \r
+               "Bark",  \r
+               "Indumentum",  \r
+               "endophytic body",  \r
+               "flowering buds",  \r
+               "Branchlets",  \r
+               "Branches",  \r
+               "Branch",  \r
+               "Flowering branchlets",\r
+               "Trees",  \r
+               "Twigs",  \r
+               "stem",  \r
+               "Stems",  \r
+               "stem leaves", \r
+               "Leaves",\r
+               "flower-bearing stems",  \r
+               "Petiole",  \r
+               "Petiolules",  \r
+               "Leaflets", \r
+               "Thyrsus",  \r
+               "Thyrses",  \r
+               "Inflorescences",  \r
+               "Inflorescence",\r
+               "Young inflorescences", \r
+               "Bracts",  \r
+               "Pedicels",  \r
+               "flowering buds",  \r
+               "scales",  \r
+               "Buds",  \r
+               "Flowers",  \r
+               "Flower",  \r
+               "Flowering",\r
+               "Stigma",  \r
+               "perianth",  \r
+               "Sepals",  \r
+               "Sepal",  \r
+               "Outer Sepals",  \r
+               "Axillary",  \r
+               "cymes",  \r
+               "Calyx",  \r
+               "Petal",  \r
+               "Petals",  \r
+               "perigone tube",\r
+               "Disc",  \r
+               "corolla",  \r
+               "Stamens",  \r
+               "Staminodes",  \r
+               "Ovary",  \r
+               "Anthers",\r
+               "anther",  \r
+               "Pistil",  \r
+               "Pistillode",  \r
+               "Ovules",  \r
+               "androecium",  \r
+               "gynoecium",  \r
+               "Filaments",            \r
+               "Style",  \r
+               "annulus",  \r
+               "female flowers",  \r
+               "Male flowers",  \r
+               "Female",  \r
+               "Infructescences",    //order not consistent (sometimes before "Flowers")  \r
+               "Fruit",  \r
+               "Fruits",  \r
+               "fruiting axes",  \r
+               "drupes",  \r
+               "Arillode",  \r
+               "seed",  \r
+               "Seeds",  \r
+               "Seedling",  \r
+               "flower tube", \r
+               "nutlets",  \r
+               "pollen",  \r
+               "secondary xylem",  \r
+               "chromosome number",  \r
+       \r
+               "figure",  \r
+               "fig",  \r
+               "figs",  \r
+\r
+\r
+\r
+               \r
+       };\r
+       \r
+       public void addFeataureNodesByStringList(String[] featureStringList, FeatureNode root, IInputTransformer transformer, ITermService termService){\r
+               try {\r
+                       for (String featureString : featureStringList){\r
+                       UUID featureUuid;\r
+                       featureUuid = transformer.getFeatureUuid(featureString);\r
+                       Feature feature = (Feature)termService.find(featureUuid);\r
+                       if (feature != null){\r
+                               FeatureNode child = FeatureNode.NewInstance(feature);\r
+                               root.addChild(child);   \r
+                       }\r
+               }\r
+               } catch (UndefinedTransformerMethodException e) {\r
+                       logger.error("getFeatureUuid is not implemented in transformer. Features could not be added");\r
+               }\r
+       }\r
+       \r
+\r
+\r
+       /**\r
+        * @param args\r
+        */\r
+       public static void main(String[] args) {\r
+               FloraMalesianaVol13Activator me = new FloraMalesianaVol13Activator();\r
+               me.doImport(cdmDestination);\r
+       }\r
+       \r
+}\r