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
\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
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
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
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
--- /dev/null
+/**\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