ref #5974 Remove synonym relationships (not finished yet)
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / app / wp6 / palmae / PalmaeActivator.java
index bdf36d54d5f5f752bf7238a60adf8e65b7c1d972..142e13216fc17716738e2a391476103d7d54be86 100644 (file)
@@ -1,8 +1,8 @@
 /**\r
 * Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \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
@@ -16,7 +16,7 @@ import java.util.UUID;
 \r
 import org.apache.log4j.Logger;\r
 \r
-import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;\r
 import eu.etaxonomy.cdm.app.common.CdmDestinations;\r
 import eu.etaxonomy.cdm.app.images.ImageImportConfigurator;\r
 import eu.etaxonomy.cdm.app.tcs.TcsSources;\r
@@ -29,6 +29,7 @@ import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;\r
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;\r
+import eu.etaxonomy.cdm.io.common.ImportResult;\r
 import eu.etaxonomy.cdm.io.tcsrdf.TcsRdfImportConfigurator;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.FeatureNode;\r
@@ -41,24 +42,24 @@ import eu.etaxonomy.cdm.model.description.FeatureTree;
  */\r
 public class PalmaeActivator {\r
        private static final Logger logger = Logger.getLogger(PalmaeActivator.class);\r
-       \r
+\r
        //database validation status (create, update, validate ...)\r
        static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;\r
        static final String tcsSource = TcsSources.arecaceae_local();\r
        static final ICdmDataSource cdmDestination = CdmDestinations.localH2Palmae();\r
-       \r
+\r
        // set the webserver path to the images\r
        private static final String imageUrlString = "http://wp5.e-taxonomy.eu/media/palmae/photos/";\r
        // set the webserver path to the protologues\r
        public static final String protologueUrlString = "http://wp5.e-taxonomy.eu/media/palmae/protologe/";\r
 \r
        public static final UUID featureTreeUuid = UUID.fromString("72ccce05-7cc8-4dab-8e47-bf3f5fd848a0");\r
-               \r
+\r
        static final UUID treeUuid = UUID.fromString("1adb71d4-cce6-45e1-b578-e668778d9ec6");\r
        static final UUID secUuid = UUID.fromString("5f32b8af-0c97-48ac-8d33-6099ed68c625");\r
        static final String sourceSecId = "palm_pub_ed_999999";\r
        static final boolean pubishReferencesInBibliography = false;\r
-       \r
+\r
        //should the other imports run as well?\r
        static final boolean includeTaxonX = true;\r
        static final boolean includeImages = true;\r
@@ -66,12 +67,12 @@ public class PalmaeActivator {
        static final boolean includeMediaProtologue = true;\r
        static final boolean updateFeatureTree = true;\r
        static final boolean updateNameUsage = true;\r
-       \r
+\r
        //check - import\r
        static final CHECK check = CHECK.CHECK_AND_IMPORT;\r
-       \r
+\r
        static boolean useClassification = true;\r
-       \r
+\r
        //authors\r
        static final boolean doAuthors = true;\r
        //references\r
@@ -79,68 +80,70 @@ public class PalmaeActivator {
        //names\r
        static final boolean doTaxonNames = true;\r
        static final boolean doRelNames = true;\r
-       \r
+\r
        //taxa\r
        static final boolean doTaxa = true;\r
        static final boolean doRelTaxa = true;\r
        static final boolean doFacts = true;\r
 \r
-       \r
-       private boolean doImport(ICdmDataSource destination){\r
-               boolean success = true;\r
+\r
+       private ImportResult doImport(ICdmDataSource destination){\r
+               ImportResult success;\r
                System.out.println("Start import from Tcs("+ tcsSource.toString() + ") ...");\r
-               \r
+\r
                //make Source\r
                URI source;\r
                try {\r
                        source = new URI(tcsSource);\r
-               \r
+\r
                        TcsRdfImportConfigurator tcsImportConfigurator = TcsRdfImportConfigurator.NewInstance(source,  destination);\r
-                       \r
+\r
                        tcsImportConfigurator.setClassificationUuid(treeUuid);\r
                        tcsImportConfigurator.setSecUuid(secUuid);\r
                        tcsImportConfigurator.setSourceSecId(sourceSecId);\r
-                       \r
-                       tcsImportConfigurator.setDoAuthors(doAuthors);\r
+\r
                        tcsImportConfigurator.setDoReferences(doReferences);\r
                        tcsImportConfigurator.setDoTaxonNames(doTaxonNames);\r
                        tcsImportConfigurator.setDoRelNames(doRelNames);\r
-                       \r
+\r
                        tcsImportConfigurator.setDoTaxa(doTaxa);\r
                        tcsImportConfigurator.setDoRelTaxa(doRelTaxa);\r
                        tcsImportConfigurator.setDoFacts(doFacts);\r
                        tcsImportConfigurator.setUseClassification(useClassification);\r
                        tcsImportConfigurator.setPublishReferences(pubishReferencesInBibliography);\r
-                       \r
+\r
                        tcsImportConfigurator.setCheck(check);\r
                        tcsImportConfigurator.setDbSchemaValidation(hbm2dll);\r
-       \r
+\r
                        // invoke import\r
                        CdmDefaultImport<TcsRdfImportConfigurator> tcsImport = new CdmDefaultImport<TcsRdfImportConfigurator>();\r
-                       success &= tcsImport.invoke(tcsImportConfigurator);\r
-                       \r
+                       success = tcsImport.invoke(tcsImportConfigurator);\r
+\r
                        //make feature tree\r
                        logger.info("Make feature tree");\r
-                       CdmApplicationController app = tcsImport.getCdmAppController();\r
-                       \r
+                       ICdmApplicationConfiguration app = tcsImport.getCdmAppController();\r
+\r
                        FeatureTree tree = getFeatureTree();\r
                        app.getFeatureTreeService().saveOrUpdate(tree);\r
                        System.out.println("End import from TCS ("+ source.toString() + ")...");\r
-                       \r
+\r
                        return success;\r
                } catch (URISyntaxException e) {\r
                        e.printStackTrace();\r
-                       return false;\r
+                       success = new ImportResult();\r
+                       success.setSuccess(false);\r
+                       success.addReport(e.getMessage().getBytes());\r
+                       return success;\r
                }\r
-               \r
+\r
        }\r
-       \r
-       \r
+\r
+\r
        private FeatureTree getFeatureTree(){\r
-               \r
+\r
                FeatureTree result = FeatureTree.NewInstance(featureTreeUuid);\r
                FeatureNode root = result.getRoot();\r
-               \r
+\r
                FeatureNode newNode;\r
                newNode = FeatureNode.NewInstance(Feature.INTRODUCTION());\r
                root.addChild(newNode);\r
@@ -170,7 +173,7 @@ public class PalmaeActivator {
                root.addChild(newNode);\r
 \r
                return result;\r
-               \r
+\r
 \r
        }\r
 \r
@@ -178,14 +181,14 @@ public class PalmaeActivator {
         * @param args\r
         */\r
        public static void main(String[] args) {\r
-               boolean success = true;\r
-               \r
+               ImportResult success;\r
+\r
                logger.debug("start");\r
                ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;\r
-               \r
+\r
                PalmaeActivator me = new PalmaeActivator();\r
                me.doImport(destination);\r
-               \r
+\r
                if (includeImages){\r
                        System.out.println("Start importing images ...");\r
                        CdmDefaultImport<IImportConfigurator> imageImporter = new CdmDefaultImport<IImportConfigurator>();\r
@@ -195,7 +198,7 @@ public class PalmaeActivator {
                                ImageImportConfigurator imageConfigurator = ImageImportConfigurator.NewInstance(\r
                                                folderUri, destination, imageUrlString, PalmaeImageImport.class);\r
                                imageConfigurator.setSecUuid(secUuid);\r
-                               success &= imageImporter.invoke(imageConfigurator);\r
+                               success = imageImporter.invoke(imageConfigurator);\r
                                System.out.println("End importing images ...");\r
                        } catch (URISyntaxException e) {\r
                                e.printStackTrace();\r
@@ -210,41 +213,41 @@ public class PalmaeActivator {
                                ImageImportConfigurator imageConfigurator = ImageImportConfigurator.NewInstance(\r
                                                fileUri, destination, protologueUrlString, PalmaeProtologueImport.class);\r
                                imageConfigurator.setSecUuid(secUuid);\r
-                               \r
+\r
                                CdmDefaultImport<IImportConfigurator> imageImporter = new CdmDefaultImport<IImportConfigurator>();\r
                                imageImporter.invoke(imageConfigurator);\r
                                System.out.println("End importing protologues ...");\r
                        } catch (URISyntaxException e) {\r
                                e.printStackTrace();\r
                        }\r
-                       \r
+\r
                }\r
                if (includeMediaProtologue){\r
                        System.out.println("Start importing protologues from \\\\media...");\r
                        String protologueSource = PalmaeProtologueImportActivator.protologueSource;\r
                        String urlString = protologueUrlString;\r
-                       \r
+\r
                        File source = new File (protologueSource);\r
                        PalmaeProtologueImportConfigurator protologConfig = PalmaeProtologueImportConfigurator.NewInstance(source, destination, urlString);\r
                        CdmDefaultImport<IImportConfigurator> cdmImport = new CdmDefaultImport<IImportConfigurator>();\r
-                       \r
+\r
                        //protologConfig.setDoFacts(doDescriptions);\r
                        protologConfig.setCheck(check);\r
                        protologConfig.setDbSchemaValidation(DbSchemaValidation.UPDATE);\r
 \r
-                       success &= cdmImport.invoke(protologConfig);\r
+                       success = cdmImport.invoke(protologConfig);\r
 \r
                        System.out.println("End importing protologues ...");\r
                }\r
-               \r
+\r
                if (includeTaxonX){\r
                        System.out.println("Start importing taxonX ...");\r
                        PalmaeTaxonXImportActivator taxonXimporter = new PalmaeTaxonXImportActivator();\r
                        PalmaeTaxonXImportActivator.cdmDestination = destination;\r
-                       success &= taxonXimporter.runImport();\r
+                       success = taxonXimporter.runImport();\r
                        System.out.println("End importing taxonX ...");\r
                }\r
-               \r
+\r
                PalmaePostImportUpdater updater = new PalmaePostImportUpdater();\r
                if (updateFeatureTree){\r
                        updater.updateMissingFeatures(destination);\r
@@ -254,13 +257,13 @@ public class PalmaeActivator {
                        updater.updateNameUsage(destination);\r
                }\r
 \r
-               \r
+\r
                String strSuccess = "";\r
-               if (success == false){\r
+               if (success.isSuccess() == false){\r
                        strSuccess = "not ";\r
                }\r
                System.out.println("Import " + strSuccess + "successful");\r
-               \r
+\r
        }\r
-       \r
+\r
 }\r