Minor cleanups in appimport
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / app / cyprus / CyprusActivator.java
index d5c5331da2df5762b7911e1493da0c46664421ae..058c6e7c69e1d2baa5d5fb2a434085f27815284e 100644 (file)
-/**\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.cyprus;\r
-\r
-import java.net.URI;\r
-import java.net.URISyntaxException;\r
-import java.util.UUID;\r
-\r
-import org.apache.log4j.Logger;\r
-\r
-import eu.etaxonomy.cdm.api.application.CdmApplicationController;\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.mapping.IInputTransformer;\r
-import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;\r
-import eu.etaxonomy.cdm.io.cyprus.CyprusImportConfigurator;\r
-import eu.etaxonomy.cdm.io.cyprus.CyprusTransformer;\r
-import eu.etaxonomy.cdm.model.agent.Person;\r
-import eu.etaxonomy.cdm.model.agent.Team;\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.reference.Reference;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
-\r
-/**\r
- * @author a.mueller\r
- * @created 16.12.2010\r
- * @version 1.0\r
- */\r
-public class CyprusActivator {\r
-       private static final Logger logger = Logger.getLogger(CyprusActivator.class);\r
-       \r
-       //database validation status (create, update, validate ...)\r
-       static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;\r
-       static final URI source = cyprus_local();\r
-\r
-       \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_cyprus_dev();\r
-//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_cyprus_production();\r
-\r
-       \r
-       //feature tree uuid\r
-       public static final UUID featureTreeUuid = UUID.fromString("14d1e912-5ec2-4d10-878b-828788b70a87");\r
-       \r
-       //classification\r
-       static final UUID classificationUuid = UUID.fromString("0c2b5d25-7b15-4401-8b51-dd4be0ee5cab");\r
-       \r
-       //check - import\r
-       static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;\r
-       \r
-       //taxa\r
-       static final boolean doTaxa = true;\r
-       static final boolean doDeduplicate = true;\r
-\r
-       \r
-       private void doImport(ICdmDataSource cdmDestination){\r
-               \r
-               //make Source\r
-               CyprusImportConfigurator config= CyprusImportConfigurator.NewInstance(source, cdmDestination);\r
-               config.setClassificationUuid(classificationUuid);\r
-               config.setDoTaxa(doTaxa);\r
-               config.setCheck(check);\r
-//             config.setDefaultLanguageUuid(defaultLanguageUuid);\r
-//             config.setDoPrintKeys(doPrintKeys);\r
-               config.setDbSchemaValidation(hbm2dll);\r
-               \r
-               CdmDefaultImport myImport = new CdmDefaultImport();\r
-\r
-               \r
-               //...\r
-               if (true){\r
-                       System.out.println("Start import from ("+ source.toString() + ") ...");\r
-                       config.setSourceReference(getSourceReference(config.getSourceReferenceTitle()));\r
-                       myImport.invoke(config);\r
-                       FeatureTree tree = makeFeatureNodes(myImport.getCdmAppController().getTermService());\r
-                       myImport.getCdmAppController().getFeatureTreeService().saveOrUpdate(tree);\r
-\r
-                       System.out.println("End import from ("+ source.toString() + ")...");\r
-               }\r
-               \r
-               \r
-               \r
-               //deduplicate\r
-               if (doDeduplicate){\r
-                       CdmApplicationController app = myImport.getCdmAppController();\r
-                       int count = app.getAgentService().deduplicate(Person.class, null, null);\r
-                       logger.warn("Deduplicated " + count + " persons.");\r
-//                     count = app.getAgentService().deduplicate(Team.class, null, null);\r
-//                     logger.warn("Deduplicated " + count + " teams.");\r
-                       count = app.getReferenceService().deduplicate(Reference.class, null, null);\r
-                       logger.warn("Deduplicated " + count + " references.");\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 makeFeatureNodes(ITermService service){\r
-               CyprusTransformer transformer = new CyprusTransformer();\r
-               \r
-               FeatureTree result = FeatureTree.NewInstance(featureTreeUuid);\r
-               result.setTitleCache("Cyprus Feature Tree");\r
-               FeatureNode root = result.getRoot();\r
-               FeatureNode newNode;\r
-\r
-               newNode = FeatureNode.NewInstance(Feature.STATUS());\r
-               root.addChild(newNode);\r
-               \r
-               newNode = FeatureNode.NewInstance(Feature.DISTRIBUTION());\r
-               root.addChild(newNode);\r
-\r
-               newNode = FeatureNode.NewInstance(Feature.SYSTEMATICS());\r
-               root.addChild(newNode);\r
-\r
-               //user defined features\r
-               String [] featureList = new String[]{"Red Book", "Endemism"};\r
-               addFeataureNodesByStringList(featureList, root, transformer, service);\r
-               \r
-               return result;\r
-       }\r
-       \r
-\r
-       //Cyprus\r
-       public static URI cyprus_local() {\r
-               URI sourceUrl;\r
-               try {\r
-                       sourceUrl = new URI("file:/C:/localCopy/Data/zypern/Zypern.xls");\r
-                       return sourceUrl;\r
-               } catch (URISyntaxException e) {\r
-                       e.printStackTrace();\r
-                       return null;\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
-        * @param args\r
-        */\r
-       public static void main(String[] args) {\r
-               CyprusActivator me = new CyprusActivator();\r
-               me.doImport(cdmDestination);\r
-       }\r
-       \r
-}\r
+/**
+* Copyright (C) 2007 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.app.cyprus;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.app.common.CdmDestinations;
+import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
+import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
+import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
+import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;
+import eu.etaxonomy.cdm.io.cyprus.CyprusImportConfigurator;
+import eu.etaxonomy.cdm.io.cyprus.CyprusTransformer;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.FeatureNode;
+import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
+
+/**
+ * @author a.mueller
+ * @created 16.12.2010
+ */
+public class CyprusActivator {
+       private static final Logger logger = Logger.getLogger(CyprusActivator.class);
+
+       //database validation status (create, update, validate ...)
+       static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
+//     static final URI source = cyprus_distribution();
+       static final URI source = cyprus_local();
+
+
+       static final ICdmDataSource cdmDestination = CdmDestinations.localH2();
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_postgres_CdmTest();
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_cyprus_dev();
+//     static final ICdmDataSource cdmDestination = CdmDestinations.cdm_cyprus_production();
+
+
+       //feature tree uuid
+       public static final UUID featureTreeUuid = UUID.fromString("14d1e912-5ec2-4d10-878b-828788b70a87");
+
+       //classification
+       static final UUID classificationUuid = UUID.fromString("0c2b5d25-7b15-4401-8b51-dd4be0ee5cab");
+
+       //check - import
+       static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
+
+       //taxa
+       static final boolean doTaxa = true;
+       static final boolean doDeduplicate = false;
+       static final boolean doDistribution = false;
+
+
+       private void doImport(ICdmDataSource cdmDestination){
+
+               //make Source
+               CyprusImportConfigurator config= CyprusImportConfigurator.NewInstance(source, cdmDestination);
+               config.setClassificationUuid(classificationUuid);
+               config.setCheck(check);
+               config.setDoDistribution(doDistribution);
+               config.setDoTaxa(doTaxa);
+               config.setDbSchemaValidation(hbm2dll);
+
+               CdmDefaultImport myImport = new CdmDefaultImport();
+
+
+               //...
+               if (true){
+                       System.out.println("Start import from ("+ source.toString() + ") ...");
+                       config.setSourceReference(getSourceReference(config.getSourceReferenceTitle()));
+                       myImport.invoke(config);
+                       if (doTaxa){
+                               FeatureTree tree = makeFeatureNodes(myImport.getCdmAppController().getTermService());
+                               myImport.getCdmAppController().getFeatureTreeService().saveOrUpdate(tree);
+                       }
+
+                       System.out.println("End import from ("+ source.toString() + ")...");
+               }
+
+
+
+               //deduplicate
+               if (doDeduplicate){
+                       ICdmApplicationConfiguration app = myImport.getCdmAppController();
+                       int count = app.getAgentService().deduplicate(Person.class, null, null);
+                       logger.warn("Deduplicated " + count + " persons.");
+//                     count = app.getAgentService().deduplicate(Team.class, null, null);
+//                     logger.warn("Deduplicated " + count + " teams.");
+                       count = app.getReferenceService().deduplicate(Reference.class, null, null);
+                       logger.warn("Deduplicated " + count + " references.");
+               }
+
+       }
+
+       private Reference<?> getSourceReference(String string) {
+               Reference<?> result = ReferenceFactory.newGeneric();
+               result.setTitleCache(string, true);
+               return result;
+       }
+
+       private FeatureTree makeFeatureNodes(ITermService service){
+               CyprusTransformer transformer = new CyprusTransformer();
+
+               FeatureTree result = FeatureTree.NewInstance(featureTreeUuid);
+               result.setTitleCache("Cyprus Feature Tree", true);
+               FeatureNode root = result.getRoot();
+               FeatureNode newNode;
+
+               newNode = FeatureNode.NewInstance(Feature.STATUS());
+               root.addChild(newNode);
+
+               newNode = FeatureNode.NewInstance(Feature.DISTRIBUTION());
+               root.addChild(newNode);
+
+               newNode = FeatureNode.NewInstance(Feature.SYSTEMATICS());
+               root.addChild(newNode);
+
+               //user defined features
+               String [] featureList = new String[]{"Red Book", "Endemism"};
+               addFeataureNodesByStringList(featureList, root, transformer, service);
+
+               return result;
+       }
+
+
+       //Cyprus
+       public static URI cyprus_local() {
+               URI sourceUrl;
+               try {
+                       sourceUrl = new URI("file:/C:/localCopy/Data/zypern/Zypern.xls");
+                       return sourceUrl;
+               } catch (URISyntaxException e) {
+                       e.printStackTrace();
+                       return null;
+               }
+       }
+       //Cyprus distriution
+       public static URI cyprus_distribution() {
+               URI sourceUrl;
+               try {
+                       sourceUrl = new URI("file:/C:/localCopy/Data/zypern/Zypern_distribution_RH_corr.xls");
+                       return sourceUrl;
+               } catch (URISyntaxException e) {
+                       e.printStackTrace();
+                       return null;
+               }
+       }
+
+       public void addFeataureNodesByStringList(String[] featureStringList, FeatureNode root, IInputTransformer transformer, ITermService termService){
+               try {
+                       for (String featureString : featureStringList){
+                       UUID featureUuid;
+                       featureUuid = transformer.getFeatureUuid(featureString);
+                       Feature feature = (Feature)termService.find(featureUuid);
+                       if (feature != null){
+                               FeatureNode child = FeatureNode.NewInstance(feature);
+                               root.addChild(child);
+                       }
+               }
+               } catch (UndefinedTransformerMethodException e) {
+                       logger.error("getFeatureUuid is not implemented in transformer. Features could not be added");
+               }
+       }
+
+
+       /**
+        * @param args
+        */
+       public static void main(String[] args) {
+               CyprusActivator me = new CyprusActivator();
+               me.doImport(cdmDestination);
+       }
+
+}