(no commit message)
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / berlinModel / BerlinModelTaxonIO.java
index 23f74205686423596f9b471ef8a22ba07297dff3..d668c000f88bbed489e5914cfcf5f8d64bd46d55 100644 (file)
@@ -37,16 +37,16 @@ public class BerlinModelTaxonIO {
 \r
        private static int modCount = 30000;\r
 \r
-       public static boolean invoke(Source source, CdmApplicationController cdmApp, boolean deleteAll\r
+       public static boolean invoke(BerlinModelImportConfigurator bmiConfig, CdmApplicationController cdmApp\r
                        MapWrapper<TaxonBase> taxonMap, MapWrapper<TaxonNameBase> taxonNameMap, MapWrapper<ReferenceBase> referenceMap){\r
-               \r
+               Source source = bmiConfig.getSource();\r
                String dbAttrName;\r
                String cdmAttrName;\r
                \r
                logger.info("start makeTaxa ...");\r
                \r
                ITaxonService taxonService = cdmApp.getTaxonService();\r
-               boolean delete = deleteAll;\r
+               boolean delete = bmiConfig.isDeleteAll();\r
 \r
                try {\r
                        //get data from database\r
@@ -82,10 +82,10 @@ public class BerlinModelTaxonIO {
                                }\r
                                \r
                                if (taxonName == null ){\r
-                                       //logger.warn("TaxonName belonging to taxon (RIdentifier = " + taxonId + ") could not be found in store. Taxon will not be transported");\r
+                                       logger.warn("TaxonName belonging to taxon (RIdentifier = " + taxonId + ") could not be found in store. Taxon will not be transported");\r
                                        continue;\r
                                }else if (reference == null ){\r
-                                       //logger.warn("Reference belonging to taxon could not be found in store. Taxon will not be imported");\r
+                                       logger.warn("Reference belonging to taxon could not be found in store. Taxon will not be imported");\r
                                        continue;\r
                                }else{\r
                                        TaxonBase taxonBase;\r
@@ -118,6 +118,10 @@ public class BerlinModelTaxonIO {
                                                        logger.warn("Doubtful = i (inactivated) not yet implemented. Doubtful set to false");\r
                                                }\r
                                                \r
+                                               //nameId\r
+                                               ImportHelper.setOriginalSource(taxonBase, bmiConfig.getSourceReference(), taxonId);\r
+\r
+                                               \r
                                                //TODO\r
                                                //\r
                                                //Created\r
@@ -130,10 +134,12 @@ public class BerlinModelTaxonIO {
                                        }\r
                                }\r
                        }\r
+                       //invokeRelations(source, cdmApp, deleteAll, taxonMap, referenceMap);\r
                        logger.info("saving taxa ...");\r
                        taxonService.saveTaxonAll(taxonMap.objects());\r
                        \r
                        logger.info("end makeTaxa ...");\r
+                       \r
                        return true;\r
                } catch (SQLException e) {\r
                        logger.error("SQLException:" +  e);\r
@@ -143,18 +149,18 @@ public class BerlinModelTaxonIO {
        }\r
        \r
 \r
-       public static boolean invokeRelations(Source source, CdmApplicationController cdmApp, boolean deleteAll\r
+       public static boolean invokeRelations(BerlinModelImportConfigurator bmiConfig, CdmApplicationController cdmApp\r
                        MapWrapper<TaxonBase> taxonMap, MapWrapper<ReferenceBase> referenceMap){\r
 \r
                Set<TaxonBase> taxonStore = new HashSet<TaxonBase>();\r
-\r
+               Source source = bmiConfig.getSource();\r
                String dbAttrName;\r
                String cdmAttrName;\r
                \r
                logger.info("start makeTaxonRelationships ...");\r
                \r
                ITaxonService taxonService = cdmApp.getTaxonService();\r
-               boolean delete = deleteAll;\r
+               boolean delete = bmiConfig.isDeleteAll();\r
 \r
                try {\r
                        //get data from database\r
@@ -186,19 +192,20 @@ public class BerlinModelTaxonIO {
                                String microcitation = null;\r
 \r
                                if (taxon2 != null && taxon1 != null){\r
-                                       if (relQualifierFk == IS_INCLUDED_IN){\r
+                                       if (relQualifierFk == TAX_REL_IS_INCLUDED_IN){\r
                                                ((Taxon)taxon2).addTaxonomicChild((Taxon)taxon1, citation, microcitation);\r
-                                       }else if (relQualifierFk == IS_SYNONYM_OF){\r
+                                       }else if (relQualifierFk == TAX_REL_IS_SYNONYM_OF){\r
                                                ((Taxon)taxon2).addSynonym((Synonym)taxon1, SynonymRelationshipType.SYNONYM_OF());\r
-                                       }else if (relQualifierFk == IS_HOMOTYPIC_SYNONYM_OF){\r
+                                       }else if (relQualifierFk == TAX_REL_IS_HOMOTYPIC_SYNONYM_OF){\r
+                                               //TODO castexceptioin\r
                                                ((Taxon)taxon2).addSynonym((Synonym)taxon1, SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF());\r
-                                       }else if (relQualifierFk == IS_HETEROTYPIC_SYNONYM_OF){\r
+                                       }else if (relQualifierFk == TAX_REL_IS_HETEROTYPIC_SYNONYM_OF){\r
                                                if (Synonym.class.isAssignableFrom(taxon1.getClass())){\r
                                                        ((Taxon)taxon2).addSynonym((Synonym)taxon1, SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF());\r
                                                }else{\r
                                                        logger.warn("Taxon (RIdentifier = " + taxon1Id + ") can not be casted to Synonym");\r
                                                }\r
-                                       }else if (relQualifierFk == IS_MISAPPLIED_NAME_OF){\r
+                                       }else if (relQualifierFk == TAX_REL_IS_MISAPPLIED_NAME_OF){\r
                                                ((Taxon)taxon2).addMisappliedName((Taxon)taxon1, citation, microcitation);\r
                                        }else {\r
                                                //TODO\r
@@ -212,11 +219,11 @@ public class BerlinModelTaxonIO {
                                        //etc.\r
                                }else{\r
                                        //TODO\r
-                                       //logger.warn("Taxa for RelPTaxon " + relPTaxonId + " do not exist in store");\r
+                                       logger.warn("Taxa for RelPTaxon " + relPTaxonId + " do not exist in store");\r
                                }\r
                        }\r
                        logger.info("Taxa to save: " + taxonStore.size());\r
-                       //taxonService.saveTaxonAll(taxonStore);\r
+                       taxonService.saveTaxonAll(taxonStore);\r
                        \r
                        logger.info("end makeRelTaxa ...");\r
                        return true;\r