fix problem with duplicates for annotations in Berlin Model import #3195
authorAndreas Müller <a.mueller@bgbm.org>
Mon, 14 Oct 2013 12:51:36 +0000 (12:51 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Mon, 14 Oct 2013 12:51:36 +0000 (12:51 +0000)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelCommonNamesImport.java

index 22df60d4d60b2148f60cfd61551129c3b93963a1..76e64ab382404aceef9f2d60bb27ca6a7f9f70c3 100644 (file)
@@ -74,14 +74,10 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
        //map that stores the regions (named areas) and makes them accessible via the regionFk\r
        private Map<String, NamedArea> regionMap = new HashMap<String, NamedArea>();\r
 \r
-       \r
-\r
        public BerlinModelCommonNamesImport(){\r
                super(dbTableName, pluralString);\r
        }\r
        \r
-       \r
-\r
        @Override\r
        protected String getIdQuery(BerlinModelImportState state) {\r
                String result = " SELECT CommonNameId FROM emCommonName WHERE (1=1) ";\r
@@ -92,11 +88,6 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
                return result;\r
        }\r
 \r
-\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator)\r
-        */\r
        @Override\r
        protected String getRecordQuery(BerlinModelImportConfigurator config) {\r
                String recordQuery = "";\r
@@ -169,7 +160,7 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
        @Override\r
        public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState state)  {\r
                boolean success = true ;\r
-               BerlinModelImportConfigurator config = state.getConfig();\r
+               \r
                Set<TaxonBase> taxaToSave = new HashSet<TaxonBase>();\r
                Map<String, Taxon> taxonMap = (Map<String, Taxon>) partitioner.getObjectMap(BerlinModelTaxonImport.NAMESPACE);\r
                Map<String, TaxonNameBase> taxonNameMap = (Map<String, TaxonNameBase>) partitioner.getObjectMap(BerlinModelTaxonNameImport.NAMESPACE);\r
@@ -345,11 +336,10 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
                                //status\r
                                if (isNotBlank(status)){\r
                                        AnnotationType statusAnnotationType = getAnnotationType( state, STATUS_ANNOTATION_UUID, "status","The status of this object","status", null);\r
-                                       Annotation annotation = Annotation.NewInstance(status, statusAnnotationType, Language.DEFAULT());\r
                                        for (CommonTaxonName commonTaxonName : commonTaxonNames){\r
+                                               Annotation annotation = Annotation.NewInstance(status, statusAnnotationType, Language.DEFAULT());\r
                                                commonTaxonName.addAnnotation(annotation);\r
                                        }\r
-                                       \r
                                }\r
                                \r
                                //Notes\r
@@ -383,7 +373,7 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
         */\r
        private Language getAndHandleLanguage(Map<String, Language> iso639Map,  String iso639_2, String iso639_1, String languageString, String originalLanguageString, BerlinModelImportState state) {\r
                Language language;\r
-               if (StringUtils.isNotBlank(iso639_2)|| StringUtils.isNotBlank(iso639_1)  ){\r
+               if (isNotBlank(iso639_2)|| isNotBlank(iso639_1)  ){\r
                        //TODO test performance, implement in state\r
                        language = getLanguageFromIsoMap(iso639Map, iso639_2, iso639_1);\r
                        \r
@@ -391,7 +381,13 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
                                language = getTermService().getLanguageByIso(iso639_2);\r
                                iso639Map.put(iso639_2, language);\r
                                if (language == null){\r
-                                       language = getTermService().getLanguageByIso(iso639_1);\r
+                                       try {\r
+                                               language = getTermService().getLanguageByIso(iso639_1);\r
+                                       } catch (Exception e) {\r
+                                               // TODO Auto-generated catch block\r
+                                               // TODO remove if problem with duplicate DescElement_Annot id is solved\r
+                                               e.printStackTrace();\r
+                                       }\r
                                        iso639Map.put(iso639_1, language);\r
                                }\r
                                if (language == null){\r
@@ -465,7 +461,7 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
                ResultSet rs = source.getResultSet(sql);\r
                while (rs.next()){\r
                        String strRegionFks = rs.getString("RegionFks"); \r
-                       if (StringUtils.isBlank(strRegionFks)){\r
+                       if (isBlank(strRegionFks)){\r
                                continue;\r
                        }\r
                        \r
@@ -568,8 +564,6 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
                return sqlWhere;\r
        }\r
 \r
-\r
-\r
        /**\r
         * Returns a map which is filled by the emCode->TdwgCode mapping defined in emArea.\r
         * Some exceptions are defined for emCode 'Ab','Rf','Uk' and some additional mapping is added \r
@@ -607,8 +601,6 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
        }\r
 \r
 \r
-\r
-\r
        /**\r
         * Returns the first non-image gallery description. Creates a new one if no description exists.\r
         * @param taxon\r
@@ -627,49 +619,34 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
                return result;\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#getRelatedObjectsForPartition(java.sql.ResultSet)\r
-        */\r
+       @Override\r
        public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {\r
                String nameSpace;\r
                Class<?> cdmClass;\r
                Set<String> idSet;\r
                Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();\r
                \r
-               int pos = -1;\r
+               String pos = "0";\r
                try{\r
                        Set<String> taxonIdSet = new HashSet<String>();\r
                        Set<String> nameIdSet = new HashSet<String>();\r
                        Set<String> referenceIdSet = new HashSet<String>();\r
                        while (rs.next()){\r
-                               pos = 0;\r
                                handleForeignKey(rs, taxonIdSet, "taxonId");\r
-                               pos = 1;\r
                                handleForeignKey(rs, taxonIdSet, "misappliedTaxonId");\r
-                               pos = 2;\r
                                handleForeignKey(rs, referenceIdSet, "refId");\r
-                               pos = 3;\r
                                handleForeignKey(rs, referenceIdSet, "languageRefRefFk");\r
-                               pos = 4;\r
                                handleForeignKey(rs, nameIdSet, "NameInSourceFk");\r
-                               pos = 5;\r
                                handleForeignKey(rs, nameIdSet, "PTNameFk");\r
-                               pos = 6;\r
                                handleForeignKey(rs, referenceIdSet, "MisNameRefFk");\r
-                               pos = -2;\r
-                               \r
                        }\r
                        \r
-                       pos = 7;\r
-                       \r
                        //name map\r
                        nameSpace = BerlinModelTaxonNameImport.NAMESPACE;\r
                        cdmClass = TaxonNameBase.class;\r
                        idSet = nameIdSet;\r
                        Map<String, TaxonNameBase<?,?>> nameMap = (Map<String, TaxonNameBase<?,?>>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
                        result.put(nameSpace, nameMap);\r
-\r
-                       pos = 8;\r
                        \r
                        //taxon map\r
                        nameSpace = BerlinModelTaxonImport.NAMESPACE;\r
@@ -677,8 +654,6 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
                        idSet = taxonIdSet;\r
                        Map<String, TaxonBase<?>> taxonMap = (Map<String, TaxonBase<?>>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
                        result.put(nameSpace, taxonMap);\r
-\r
-                       pos = 9;\r
                        \r
                        //reference map\r
                        nameSpace = BerlinModelReferenceImport.REFERENCE_NAMESPACE;\r
@@ -686,9 +661,7 @@ public class BerlinModelCommonNamesImport  extends BerlinModelImportBase {
                        idSet = referenceIdSet;\r
                        Map<String, Reference> referenceMap = (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
                        result.put(nameSpace, referenceMap);\r
-\r
-                       pos = 10;\r
-                       \r
+                       // TODO remove if problem with duplicate DescElement_Annot id is solved\r
                } catch (SQLException e) {\r
                        throw new RuntimeException("pos: " +pos, e);\r
                } catch (NullPointerException nep){\r