/**\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
import org.apache.log4j.Logger;\r
import org.springframework.transaction.TransactionStatus;\r
\r
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;\r
+import eu.etaxonomy.cdm.api.application.ICdmRepository;\r
import eu.etaxonomy.cdm.app.berlinModelImport.BerlinModelSources;\r
import eu.etaxonomy.cdm.app.common.CdmDestinations;\r
import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;\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.common.Source;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
\r
/**\r
* TODO add the following to a wiki page:\r
- * HINT: If you are about to import into a mysql data base running under windows and if you wish to dump and restore the resulting data bas under another operation systen \r
+ * HINT: If you are about to import into a mysql data base running under windows and if you wish to dump and restore the resulting data bas under another operation systen\r
* you must set the mysql system variable lower_case_table_names = 0 in order to create data base with table compatible names.\r
- * \r
- * \r
+ *\r
+ *\r
* @author a.mueller\r
*\r
*/\r
// static final UUID treeUuid = UUID.fromString("00db28a7-50e1-4abc-86ec-b2a8ce870de9");\r
// static final UUID treeUuid = UUID.fromString("534e190f-3339-49ba-95d9-fa27d5493e3e");\r
static final int sourceSecId = 7800000;\r
- \r
+\r
static final UUID featureTreeUuid = UUID.fromString("ab007336-d853-4f2f-a490-7c8232eafe7b");\r
- static final Object[] featureKeyList = new Integer[]{1, 31, 4, 98, 41}; \r
- \r
+ static final Object[] featureKeyList = new Integer[]{1, 31, 4, 98, 41};\r
+\r
//TODO update for Taraxacum\r
static final String mediaUrlString = "http://wp5.e-taxonomy.eu/dataportal/cichorieae/media/protolog/";\r
//Mac\r
//static final File mediaPath = new File("\\\\media\\editwp6\\protolog");\r
// set to zero for unlimited nameFacts\r
static final int maximumNumberOfNameFacts = 0;\r
- \r
- \r
+\r
+\r
//check - import\r
//static final CHECK check = CHECK.CHECK_ONLY;\r
static final CHECK check = CHECK.CHECK_AND_IMPORT;\r
static final boolean ignoreNull = true;\r
\r
\r
-// **************** ALL ********************* \r
+// **************** ALL *********************\r
//authors\r
static final boolean doAuthors = true;\r
//references\r
static final boolean doNameStatus = true;\r
static final boolean doTypes = true;\r
static final boolean doNameFacts = true;\r
- \r
+\r
//taxa\r
static final boolean doTaxa = true;\r
static final boolean doRelTaxa = true;\r
- static final boolean doFacts = true;\r
- static final boolean doOccurences = true;\r
+ static final boolean doFacts = false;\r
+ static final boolean doOccurences = false;\r
static final boolean doCommonNames = true;\r
\r
- \r
+\r
// **************** SELECTED *********************\r
//\r
// //authors\r
// static final boolean doNameStatus = false;\r
// static final boolean doTypes = false;\r
// static final boolean doNameFacts = false;\r
-// \r
-// //taxa \r
+//\r
+// //taxa\r
// static final boolean doTaxa = false;\r
// static final boolean doRelTaxa = false;\r
// static final boolean doFacts = false;\r
// static final boolean doOccurences = false;\r
- \r
+\r
/**\r
* @param args\r
*/\r
- public boolean doImport(ICdmDataSource destination, DbSchemaValidation hbm2dll) {\r
- boolean success = true;\r
+ public ImportResult doImport(ICdmDataSource destination, DbSchemaValidation hbm2dll) {\r
+ ImportResult success;\r
logger.info("Start import from BerlinModel("+ berlinModelSource.getDatabase() + ") to " + cdmDestination.getDatabase() + " ...");\r
- \r
+\r
//make BerlinModel Source\r
Source source = berlinModelSource;\r
- \r
+\r
BerlinModelImportConfigurator bmImportConfigurator = BerlinModelImportConfigurator.NewInstance(source, destination);\r
- \r
+\r
bmImportConfigurator.setClassificationUuid(treeUuid);\r
// bmImportConfigurator.setSecUuid(secUuid);\r
bmImportConfigurator.setSourceSecId(sourceSecId);\r
- \r
+\r
bmImportConfigurator.setNomenclaturalCode(nomenclaturalCode);\r
\r
bmImportConfigurator.setIgnoreNull(ignoreNull);\r
bmImportConfigurator.setDoNameStatus(doNameStatus);\r
bmImportConfigurator.setDoTypes(doTypes);\r
bmImportConfigurator.setDoNameFacts(doNameFacts);\r
- \r
+\r
bmImportConfigurator.setDoTaxa(doTaxa);\r
bmImportConfigurator.setDoRelTaxa(doRelTaxa);\r
bmImportConfigurator.setDoFacts(doFacts);\r
bmImportConfigurator.setDoOccurrence(doOccurences);\r
bmImportConfigurator.setDoCommonNames(doCommonNames);\r
- \r
+\r
bmImportConfigurator.setDbSchemaValidation(hbm2dll);\r
\r
- \r
+\r
// mediaResourceLocations\r
File mediaPath = CichorieaeActivator.protologuePath;\r
if ( mediaPath.exists() && mediaPath.isDirectory()){\r
}else{\r
logger.warn("Could not configure mediaResourceLocations");\r
}\r
- \r
+\r
// maximum number of name facts to import\r
bmImportConfigurator.setMaximumNumberOfNameFacts(maximumNumberOfNameFacts);\r
- \r
- \r
+\r
+\r
bmImportConfigurator.setCheck(check);\r
- \r
+\r
// invoke import\r
CdmDefaultImport<BerlinModelImportConfigurator> bmImport = new CdmDefaultImport<BerlinModelImportConfigurator>();\r
- success &= bmImport.invoke(bmImportConfigurator);\r
- \r
+ success = bmImport.invoke(bmImportConfigurator);\r
+\r
if (bmImportConfigurator.getCheck().equals(CHECK.CHECK_AND_IMPORT) || bmImportConfigurator.getCheck().equals(CHECK.IMPORT_WITHOUT_CHECK) ){\r
- ICdmApplicationConfiguration app = bmImport.getCdmAppController();\r
+ ICdmRepository app = bmImport.getCdmAppController();\r
TransactionStatus tx = app.startTransaction();\r
//make feature tree\r
// FeatureTree tree = TreeCreator.flatTree(featureTreeUuid, bmImportConfigurator.getFeatureMap(), featureKeyList);\r
mergeIntoCichorieae(app);\r
app.commitTransaction(tx);\r
}\r
- \r
+\r
logger.info("End import from BerlinModel ("+ source.getDatabase() + ")...");\r
return success;\r
}\r
- \r
- \r
- public boolean mergeIntoCichorieae(ICdmApplicationConfiguration app){\r
+\r
+\r
+ public boolean mergeIntoCichorieae(ICdmRepository app){\r
boolean success = true;\r
// String taraxTaraxacumUuidStr = "9a7bced0-fa1a-432e-9cca-57b62219cde6";\r
String taraxTaraxacumUuidStr = "b86f1156-091c-494d-a9c9-c84d71058f98";\r
\r
String cichTaraxacumUuidStr = "c946ac62-b6c6-493b-8ed9-278fa38b931a";\r
UUID cichTaraxacumUUID = UUID.fromString(cichTaraxacumUuidStr);\r
- \r
+\r
Taxon taraxacumInCichTaxon = (Taxon)app.getTaxonService().find(cichTaraxacumUUID);\r
if (taraxacumInCichTaxon != null) {\r
logger.info("Merge Taraxacum");\r
TaxonNode parentNodeInCich = null;\r
Taxon parentInCich = null;\r
TaxonNode taxonNodeInTarax = null;\r
- \r
+\r
if (taxonNodesInCich == null || taxonNodesInCich.isEmpty()) {\r
logger.error("No taxon nodes found for Taraxacum in cichorieae database");\r
success = false;\r
} else {\r
logger.info(taxonNodesInCich.size()+ " taxon node(s) found for Taraxacum in Cich DB");\r
taxonNodeInCich = taxonNodesInCich.iterator().next();\r
- parentNodeInCich = (TaxonNode) taxonNodeInCich.getParent();\r
+ parentNodeInCich = taxonNodeInCich.getParent();\r
parentInCich = parentNodeInCich.getTaxon();\r
}\r
- \r
+\r
Taxon taraxacumInTaraxTaxon = (Taxon)app.getTaxonService().find(taraxTaraxacumUUID);\r
- \r
+\r
Set<TaxonNode> taxonNodesInTarax = taraxacumInTaraxTaxon.getTaxonNodes();\r
- \r
+\r
Classification treeInTaraxacum = null;\r
if (taxonNodesInTarax == null || taxonNodesInTarax.isEmpty()) {\r
logger.warn("No taxon nodes found for Taraxacum in taraxacum database");\r
taxonNodeInTarax = taxonNodesInTarax.iterator().next();\r
treeInTaraxacum = taxonNodeInTarax.getClassification();\r
}\r
- \r
+\r
//TODO reference\r
Reference citation = null;\r
String microcitation = null;\r
- \r
+\r
taxonNodeInTarax = parentNodeInCich.addChildNode(taxonNodeInTarax, citation, microcitation);\r
//parentNodeInCich.getClassification().addParentChild(parentInCich, taraxacumInTaraxTaxon, null, null);\r
- \r
+\r
parentNodeInCich.deleteChildNode(taxonNodeInCich);\r
- \r
+\r
app.getTaxonService().save(parentInCich);\r
- try{\r
- app.getTaxonService().delete(taraxacumInCichTaxon);\r
- }catch(Exception e){ //TODO debug to repair Jenkins\r
- e.printStackTrace();\r
- return false;\r
- }\r
- \r
+\r
+ app.getTaxonService().delete(taraxacumInCichTaxon);\r
+\r
+\r
try {\r
// app.getClassificationService().delete(treeInTaraxacum); //throws exception\r
} catch (Exception e) {\r
}\r
return success;\r
}\r
- \r
+\r
public static void main(String[] args) {\r
TaraxacumActivator ta = new TaraxacumActivator();\r
ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;\r
- \r
+\r
ta.doImport(destination, hbm2dll);\r
- \r
+\r
}\r
\r
}\r