X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib-apps.git/blobdiff_plain/8507aeeec1b089fb644067991c591c6491c27ac9..bafde527505ffa70e5079ca01406c735de576069:/app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/CentralAfricaEricaceaeActivator.java?ds=sidebyside diff --git a/app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/CentralAfricaEricaceaeActivator.java b/app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/CentralAfricaEricaceaeActivator.java index ddf8a020..00005ce3 100644 --- a/app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/CentralAfricaEricaceaeActivator.java +++ b/app-import/src/main/java/eu/etaxonomy/cdm/app/eflora/CentralAfricaEricaceaeActivator.java @@ -17,6 +17,7 @@ import org.apache.log4j.Logger; import org.springframework.transaction.TransactionStatus; import eu.etaxonomy.cdm.api.application.CdmApplicationController; +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.common.DefaultProgressMonitor; @@ -25,18 +26,24 @@ import eu.etaxonomy.cdm.database.DbSchemaValidation; import eu.etaxonomy.cdm.database.ICdmDataSource; import eu.etaxonomy.cdm.database.update.CdmUpdater; import eu.etaxonomy.cdm.io.common.CdmDefaultImport; +import eu.etaxonomy.cdm.io.common.CdmImportBase.TermMatchMode; 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.eflora.EfloraImportConfigurator; import eu.etaxonomy.cdm.io.eflora.centralAfrica.ericaceae.CentralAfricaEricaceaeImportConfigurator; import eu.etaxonomy.cdm.io.eflora.centralAfrica.ericaceae.CentralAfricaEricaceaeTransformer; -import eu.etaxonomy.cdm.model.agent.Person; +import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator; +import eu.etaxonomy.cdm.model.agent.Team; import eu.etaxonomy.cdm.model.common.Language; +import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary; 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.description.PolytomousKey; +import eu.etaxonomy.cdm.model.location.NamedArea; +import eu.etaxonomy.cdm.model.location.NamedAreaLevel; +import eu.etaxonomy.cdm.model.location.NamedAreaType; import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.model.reference.ReferenceFactory; @@ -51,14 +58,16 @@ public class CentralAfricaEricaceaeActivator { //database validation status (create, update, validate ...) static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE; static final URI source = EfloraSources.ericacea_local(); + + static final URI specimenSource = EfloraSources.ericacea_specimen_local(); // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_andreasM3(); // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_flora_central_africa_preview(); // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_flora_central_africa_production(); -// static final ICdmDataSource cdmDestination = CdmDestinations.localH2(); + 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_test_local_mysql(); // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_jaxb(); //feature tree uuid @@ -75,11 +84,16 @@ public class CentralAfricaEricaceaeActivator { static boolean doPrintKeys = false; //taxa + private boolean includeEricaceae = true; static final boolean doTaxa = true; static final boolean doDeduplicate = false; - private boolean includeEricaceae = true; - + + private boolean doNewNamedAreas = false; + private boolean doFeatureTree = false; + + private boolean doSpecimen = false; + private TermMatchMode specimenAreaMatchMode = TermMatchMode.UUID_ABBREVLABEL; private void doImport(ICdmDataSource cdmDestination){ @@ -116,8 +130,10 @@ public class CentralAfricaEricaceaeActivator { System.out.println("End import from ("+ source.toString() + ")..."); } - FeatureTree tree = makeFeatureNode(myImport.getCdmAppController().getTermService()); - myImport.getCdmAppController().getFeatureTreeService().saveOrUpdate(tree); + if (doFeatureTree){ + FeatureTree tree = makeFeatureNode(myImport.getCdmAppController().getTermService()); + myImport.getCdmAppController().getFeatureTreeService().saveOrUpdate(tree); + } //check keys if (doPrintKeys){ @@ -132,15 +148,133 @@ public class CentralAfricaEricaceaeActivator { //deduplicate if (doDeduplicate){ - CdmApplicationController 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."); + ICdmApplicationConfiguration app = myImport.getCdmAppController(); + if (app == null){ + app = CdmApplicationController.NewInstance(cdmDestination, hbm2dll, false); + } + app.getAgentService().updateTitleCache(Team.class, null, null, null); + return; +// 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."); + } + + if(doNewNamedAreas){ + newNamedAreas(myImport); + } + + if (doSpecimen){ + logger.warn("Start specimen import"); + ICdmApplicationConfiguration app = myImport.getCdmAppController(); + SpecimenCdmExcelImportConfigurator specimenConfig= SpecimenCdmExcelImportConfigurator.NewInstance(specimenSource, cdmDestination); + specimenConfig.setCdmAppController((CdmApplicationController)app); + specimenConfig.setAreaMatchMode(specimenAreaMatchMode); + + config.setDbSchemaValidation(DbSchemaValidation.VALIDATE); + specimenConfig.setSourceReference(getSourceReference(specimenConfig.getSourceReferenceTitle())); + + CdmDefaultImport specimenImport = new CdmDefaultImport(); + specimenImport.setCdmAppController(app); + specimenImport.invoke(specimenConfig); + + + } + return; + + + + } + + private void newNamedAreas(CdmDefaultImport myImport) { + ICdmApplicationConfiguration app = myImport.getCdmAppController(); + if (app == null){ + app = CdmApplicationController.NewInstance(cdmDestination, hbm2dll, false); } + TransactionStatus tx = app.startTransaction(); + OrderedTermVocabulary voc = OrderedTermVocabulary.NewInstance("Phytogeographic Regions of Central Africa", "Phytogeographic Regions of Central Africa", "FdAC regions", null); + app.getVocabularyService().save(voc); + + NamedAreaLevel level = NamedAreaLevel.NewInstance("Phytogeographic Regions of Central Africa", "Phytogeographic Regions of Central Africa", "FdAC regions"); + ITermService termService = app.getTermService(); + + termService.save(level); + + NamedArea area = NamedArea.NewInstance("Côtier", "Côtier", "I"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + + area = NamedArea.NewInstance("Mayumbe", "Mayumbe", "II"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Bas-Congo", "Bas-Congo", "III"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Kasai", "Kasai", "IV"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Bas-Katanga", "Bas-Katanga", "V"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Forestier Central", "Forestier Central", "VI"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Ubangi-Uele", "Ubangi-Uele", "VII"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Lac Albert", "Lac Albert", "VIII"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Lacs Édouard et Kivu", "Lacs Édouard et Kivu", "IX"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Rwanda-Burundi", "Rwanda-Burundi", "X"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + area = NamedArea.NewInstance("Haut-Katanga", "Haut-Katanga", "XI"); + area.setLevel(level); + area.setType(NamedAreaType.NATURAL_AREA()); + voc.addTerm(area); + termService.save(area); + + app.getVocabularyService().save(voc); + + app.commitTransaction(tx); + } private Reference getSourceReference(String string) {