static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;\r
static final Source berlinModelSource = BerlinModelSources.MT_MOOSE();\r
\r
- static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
+// static final ICdmDataSource cdmDestination = CdmDestinations.localH2();\r
// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_redlist_moose_production();\r
-// static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_test();\r
+ static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_test();\r
\r
static final UUID classificationUuid = UUID.fromString("601d8a00-cffe-4509-af93-b15b543ccf8d");\r
static final UUID sourceRefUuid = UUID.fromString("601d8a00-cffe-4509-af93-b15b543ccf8d");\r
\r
static final String relPTaxonIdQuery = "SELECT * FROM RelPTaxon r " +\r
" WHERE NOT (r.PTRefFk1 <> r.PTRefFk2 AND r.RelQualifierFk = 1)";\r
+ static final String taxonTable = "PTaxon WHERE notIntoCdm = 0";\r
+ static final String authorTable = "v_cdmExport_authors";\r
+ static final String authorTeamTable = "v_cdmExport_authorTeamsAll";\r
+ static final String referenceTable = "v_cdmExport_references";\r
\r
//check - import\r
static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;\r
config.setDoOccurrenceSources(doOccurenceSources);\r
config.setDoCommonNames(doCommonNames);\r
config.setSourceRefUuid(sourceRefUuid);\r
+\r
+ //filter\r
config.setRelTaxaIdQuery(relPTaxonIdQuery);\r
+ config.setTaxonTable(taxonTable);\r
+ config.setAuthorFilter(authorTable);\r
+ config.setAuthorTeamFilter(authorTeamTable);\r
+ config.setReferenceIdTable(referenceTable);\r
\r
config.setDbSchemaValidation(hbm2dll);\r
\r
\r
@Override\r
protected String getIdQuery(BerlinModelImportState state) {\r
- if (state.getConfig().isEuroMed() && state.getConfig().getAuthorFilter() != null ){\r
- //for performance reasons we do not use a subquery\r
- return " SELECT authorId "\r
- + " FROM v_cdm_exp_authorsAll "\r
- + " ORDER BY authorId "\r
- ;\r
- }\r
+ if (state.getConfig().isEuroMed() && state.getConfig().getAuthorFilter() != null ){\r
+ //for performance reasons we do not use a subquery\r
+ return " SELECT authorId "\r
+ + " FROM v_cdm_exp_authorsAll "\r
+ + " ORDER BY authorId "\r
+ ;\r
+ }else if ("v_cdmExport_authors".equals(state.getConfig().getAuthorFilter())) {\r
+ //Moose\r
+ return " SELECT authorId "\r
+ + " FROM v_cdmExport_authors "\r
+ + " ORDER BY authorId "\r
+ ;\r
+ }\r
\r
String result = " SELECT authorId FROM " + getTableName();\r
if (StringUtils.isNotBlank(state.getConfig().getAuthorFilter())){\r
\r
String strRecordQuery = getRecordQuery(config);\r
String strWhere = " WHERE (1=1) ";\r
- if (state.getConfig().getAuthorTeamFilter() != null){\r
+ if ("v_cdmExport_authorTeamsAll".equals(state.getConfig().getAuthorTeamFilter())) {\r
+ //Moose\r
+ strWhere += " AND authorTeamFk IN "\r
+ + " (SELECT authorTeamId FROM v_cdmExport_authorTeamsAll)";\r
+ }else if (state.getConfig().getAuthorTeamFilter() != null){\r
strWhere += " AND " + state.getConfig().getAuthorTeamFilter();\r
strWhere = strWhere.replaceFirst("authorTeamId", "authorTeamFk");\r
}\r
return " SELECT authorTeamId "\r
+ " FROM v_cdm_exp_authorTeamsAll ORDER BY authorTeamId "\r
;\r
+ }else if ("v_cdmExport_authorTeamsAll".equals(state.getConfig().getAuthorTeamFilter())){\r
+ //Moose\r
+ return " SELECT authorTeamId "\r
+ + " FROM v_cdmExport_authorTeamsAll ORDER BY authorTeamId "\r
+ ;\r
}\r
\r
String strWhere = " WHERE (1=1) ";\r
import eu.etaxonomy.cdm.io.common.mapping.berlinModel.CdmOneToManyMapper;
import eu.etaxonomy.cdm.io.common.mapping.berlinModel.CdmStringMapper;
import eu.etaxonomy.cdm.io.common.mapping.berlinModel.CdmUriMapper;
+import eu.etaxonomy.cdm.io.common.mapping.berlinModel.CdmUuidMapper;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
new CdmStringMapper("series", "seriesPart"),
new CdmStringMapper("issn", "issn"),
new CdmUriMapper("url", "uri"),
+ new CdmUuidMapper("uuid", "uuid"),
DbImportExtensionMapper.NewInstance("NomStandard", ExtensionType.NOMENCLATURAL_STANDARD()),
DbImportExtensionMapper.NewInstance("DateString", DATE_STRING_UUID, "Date String", "Date String", "dates"),
DbImportExtensionMapper.NewInstance("RefDepositedAt", REF_DEPOSITED_AT_UUID, "Ref. deposited at", "Reference is deposited at", "at"),
value = null;
}
}
+ if (mapper instanceof CdmUuidMapper && value != null){
+ try {
+ value = UUID.fromString(value.toString());
+ } catch (IllegalArgumentException e) {
+ logger.error("UUID syntax exception: " + value.toString());
+ value = null;
+ }
+ }
if (value != null){
String destinationAttribute = mapper.getDestinationAttribute();
if (! omitAttributes.contains(destinationAttribute)){
\r
if (! (taxon1 instanceof Taxon)){\r
success = false;\r
- logger.error("TaxonBase (ID = " + taxon1.getId()+ ", RIdentifier = " + taxon1Id + ") can't be casted to Taxon");\r
+ logger.error("TaxonBase (ID = " + taxon1.getId()+ ", RIdentifier = " + taxon1Id + ") can't be casted to Taxon for concept relationship from taxon (relRefID=" + relPTaxonId + ")");\r
}else{\r
Taxon fromTaxon = (Taxon)taxon1;\r
if (isInverse.getValue() == true){\r
" LEFT OUTER JOIN RelPTaxon AS RelPTaxon_1 ON pt.PTNameFk = RelPTaxon_1.PTNameFk1 AND pt.PTRefFk = RelPTaxon_1.PTRefFk1 " +\r
" WHERE (RelPTaxon_1.RelQualifierFk IS NULL) AND (dbo.RelPTaxon.RelQualifierFk IS NULL) " +\r
" ORDER BY pt.PTRefFk " ;\r
+ if ("PTaxon WHERE notIntoCdm = 0".equals(state.getConfig().getTaxonTable())) {\r
+ //Moose\r
+ sql = sql.replace("WHERE ", "WHERE notIntoCdm = 0 AND ");\r
+ }\r
+\r
ResultSet rs = state.getConfig().getSource().getResultSet(sql);\r
Map<Object, Map<String, ? extends CdmBase>> maps = getRelatedObjectsForFlatPartition(rs);\r
\r