ref #2934 some adaptations for "Moose" import in app-import
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 20 Sep 2022 15:03:27 +0000 (17:03 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 20 Sep 2022 15:03:27 +0000 (17:03 +0200)
app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/MTMooseActivator.java
app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelAuthorImport.java
app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelAuthorTeamImport.java
app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelReferenceImport.java
app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelTaxonRelationImport.java

index f671b6e555a72dba6e307558b160a43f25720a9a..6209f132d6136b9191b7b2a58940c9a8456768dc 100644 (file)
@@ -40,9 +40,9 @@ public class MTMooseActivator {
        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
@@ -54,6 +54,10 @@ public class MTMooseActivator {
 \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
@@ -139,7 +143,13 @@ public class MTMooseActivator {
                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
index 866175e2cf94daee20bfdf77b17e316eff9815f6..cf10ae718dd24e8deb8b0535fc095c51a9484f23 100644 (file)
@@ -57,13 +57,19 @@ public class BerlinModelAuthorImport extends BerlinModelImportBase {
 \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
index 077e77671c669133ffc4e4eaee5238bf36edb2fd..a5ecb299cf60f7fd10b68408830b9b8651b00bbf 100644 (file)
@@ -69,7 +69,11 @@ public class BerlinModelAuthorTeamImport extends BerlinModelImportBase {
 \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
@@ -102,6 +106,11 @@ public class BerlinModelAuthorTeamImport extends BerlinModelImportBase {
                    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
index 3c8fc78693e3f858c447b7a086bed078782c49f0..c333ad5068cb6b3395f40bde70e40d5830b25c2d 100644 (file)
@@ -60,6 +60,7 @@ import eu.etaxonomy.cdm.io.common.mapping.DbSingleAttributeImportMapperBase;
 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;
@@ -142,6 +143,7 @@ public class BerlinModelReferenceImport extends BerlinModelImportBase {
                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"),
@@ -1066,6 +1068,14 @@ public class BerlinModelReferenceImport extends BerlinModelImportBase {
                                        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)){
index eb1758b8fbb914a1645a8f253640b2f01c820b11..9e5377af319d9e453b91662708e77d69a0e147c5 100644 (file)
@@ -401,7 +401,7 @@ public class BerlinModelTaxonRelationImport  extends BerlinModelImportBase  {
 \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
@@ -577,6 +577,11 @@ public class BerlinModelTaxonRelationImport  extends BerlinModelImportBase  {
                                                        "  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