\r
//ignore null\r
static final boolean ignoreNull = true;\r
+ \r
+ static boolean useTaxonomicTree = true;\r
\r
\r
// **************** ALL ********************* \r
static final boolean doRelNames = true;\r
static final boolean doNameStatus = true;\r
static final boolean doTypes = true;\r
- static final boolean doNameFacts = false;\r
+ static final boolean doNameFacts = true;\r
\r
//taxa\r
static final boolean doTaxa = true;\r
bmImportConfigurator.setDoNameStatus(doNameStatus);\r
bmImportConfigurator.setDoTypes(doTypes);\r
bmImportConfigurator.setDoNameFacts(doNameFacts);\r
+ bmImportConfigurator.setUseTaxonomicTree(useTaxonomicTree);\r
\r
bmImportConfigurator.setDoTaxa(doTaxa);\r
bmImportConfigurator.setDoRelTaxa(doRelTaxa);\r
import java.io.File;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
+import java.util.Set;\r
import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;\r
\r
\r
/**\r
//database validation status (create, update, validate ...)\r
static DbSchemaValidation hbm2dll = DbSchemaValidation.UPDATE;\r
static final Source berlinModelSource = BerlinModelSources.EDIT_Taraxacum();\r
- static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
+ static final ICdmDataSource cdmDestination = CdmDestinations.cdm_import_cichorieae();\r
\r
org.h2.jdbc.JdbcSQLException h;\r
static final UUID secUuid = UUID.fromString("ba7120ce-4fab-49dc-aaa4-f36276426aa8");\r
if (taraxacumInCich != null) {\r
logger.info("Merge Taraxacum");\r
Taxon parent = taraxacumInCich.getTaxonomicParent();\r
+ Set<TaxonNode> parentNodes = parent.getTaxonNodes();\r
+ if(parentNodes.size() != 1){\r
+ throw new RuntimeException("Exactly one Taxon Node expected, but found " + parentNodes.size());\r
+ }\r
+ TaxonNode parentNode = parentNodes.iterator().next();\r
UUID taraxacumTaraxUUID = UUID.fromString(taraxTaraxacum);\r
Taxon taraxacumInTarax = (Taxon)app.getTaxonService().findByUuid(taraxacumTaraxUUID);\r
- \r
+ \r
//TODO reference\r
ReferenceBase citation = null;\r
String microcitation = null;\r
- parent.addTaxonomicChild(taraxacumInTarax, citation, microcitation);\r
+ parentNode.addChild(taraxacumInTarax, citation, microcitation);\r
app.getTaxonService().save(parent);\r
- parent.removeTaxonomicChild(taraxacumInCich);\r
+ TaxonNode taraxacumInCichNode = parentNode.getTaxonomicTree().getNode(taraxacumInCich);\r
+ parentNode.removeChild(taraxacumInCichNode);\r
app.getTaxonService().delete(taraxacumInCich);\r
- \r
- // Replace sec ID of Taraxacum in Taraxacum DB by sec ID of Taraxacum in Cichorieae DB\r
- // = workaround to display Taraxacum Genus correctly in Data Portal Taxon Tree\r
- // Currently only one sec ID can be specified in Data Portal\r
- try {\r
-\r
- int secIdTarax = 0;\r
- int secIdCich = 0;\r
- \r
- String sqlString = \r
- " SELECT titleCache, sec_id FROM TaxonBase WHERE uuid = '" + taraxTaraxacum + "'";\r
-\r
- ResultSet rs = ((CdmDataSource)cdmDestination).executeQuery(sqlString);\r
- while (rs.next()) {\r
- secIdTarax = rs.getInt("sec_id");\r
- if (logger.isInfoEnabled()) {\r
- String titleCache = rs.getString("titleCache");\r
- logger.info("secId of " + titleCache + " (" + taraxTaraxacum + ") in Taraxacum DB: " + secIdTarax);\r
- }\r
- }\r
- \r
- sqlString = \r
- " SELECT titleCache, sec_id FROM TaxonBase WHERE titleCache like 'Crepis%' ";\r
-\r
- rs = ((CdmDataSource)cdmDestination).executeQuery(sqlString);\r
- while (rs.next()) {\r
- secIdCich = rs.getInt("sec_id");\r
- if (logger.isInfoEnabled()) {\r
- String titleCache = rs.getString("titleCache");\r
- logger.info("secId of " + titleCache + " (" + cichTaraxacum + ") in Cichorieae DB: " + secIdCich);\r
- }\r
- if (secIdCich != 0) { break; }\r
- }\r
- \r
- sqlString = \r
- " UPDATE TaxonBase SET sec_id = " + secIdCich + " WHERE sec_id = " + secIdTarax;\r
-\r
- int result = ((CdmDataSource)cdmDestination).executeUpdate(sqlString);\r
- if (logger.isInfoEnabled()) {\r
- logger.info("Update result = " + result);\r
- }\r
-\r
- } catch (SQLException e) {\r
- logger.error("SQLException:" + e);\r
- }\r
}\r
- \r
}\r
\r
public static void main(String[] args) {\r
static final boolean includeMediaProtologue = true;\r
\r
//check - import\r
- static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;\r
+ static final CHECK check = CHECK.CHECK_AND_IMPORT;\r
+ \r
+ static boolean useTaxonomicTree = true;\r
\r
//authors\r
static final boolean doAuthors = true;\r
static final boolean doTaxa = true;\r
static final boolean doRelTaxa = true;\r
static final boolean doFacts = true;\r
- \r
\r
\r
private boolean doImport(){\r
tcsImportConfigurator.setDoTaxa(doTaxa);\r
tcsImportConfigurator.setDoRelTaxa(doRelTaxa);\r
tcsImportConfigurator.setDoFacts(doFacts);\r
+ tcsImportConfigurator.setUseTaxonomicTree(useTaxonomicTree);\r
\r
tcsImportConfigurator.setCheck(check);\r
tcsImportConfigurator.setDbSchemaValidation(hbm2dll);\r