adapt some classes to new CommonService.getSourcedObjectSByIdInSource and cleanup
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / io / algaterra / AlgaTerraTypeImagesImport.java
index ad3c0011888014a1dcad2b85b02971bf08e4715c..03da040356c405eafb74b91825374d4e3ef68e41 100644 (file)
@@ -1,8 +1,8 @@
 /**\r
 * Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
@@ -19,7 +19,6 @@ import java.util.Set;
 import org.apache.log4j.Logger;\r
 import org.springframework.stereotype.Component;\r
 \r
-import eu.etaxonomy.cdm.io.algaterra.AlgaTerraImageImportBase.PathType;\r
 import eu.etaxonomy.cdm.io.algaterra.validation.AlgaTerraTypeImportValidator;\r
 import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;\r
 import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState;\r
@@ -35,29 +34,29 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 \r
 /**\r
  * @author a.mueller\r
- * @created 20.03.2008\r
+ * @since 20.03.2008\r
  */\r
 @Component\r
 public class AlgaTerraTypeImagesImport  extends AlgaTerraImageImportBase {\r
        private static final Logger logger = Logger.getLogger(AlgaTerraTypeImagesImport.class);\r
 \r
-       \r
+\r
        private static int modCount = 5000;\r
        private static final String pluralString = "type images";\r
-       private static final String dbTableName = "SpecimenFigure";  //??  \r
-       \r
+       private static final String dbTableName = "SpecimenFigure";  //??\r
+\r
        public AlgaTerraTypeImagesImport(){\r
                super(dbTableName, pluralString);\r
        }\r
-       \r
-       \r
+\r
+\r
        /* (non-Javadoc)\r
         * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getIdQuery()\r
         */\r
        @Override\r
        protected String getIdQuery(BerlinModelImportState state) {\r
-               String result = " SELECT SpecimenFigureId "  \r
-                               + " FROM SpecimenFigure " \r
+               String result = " SELECT SpecimenFigureId "\r
+                               + " FROM SpecimenFigure "\r
                                + " WHERE TypeSpecimenFk is NOT NULL "\r
                                + " ORDER BY TypeSpecimenFk ";\r
                return result;\r
@@ -68,11 +67,11 @@ public class AlgaTerraTypeImagesImport  extends AlgaTerraImageImportBase {
         */\r
        @Override\r
        protected String getRecordQuery(BerlinModelImportConfigurator config) {\r
-                       String strQuery =    \r
-                                       \r
+                       String strQuery =\r
+\r
                        " SELECT sf.*, sf.SpecimenFigurePhrase as FigurePhrase, sf.SpecimenFigure as fileName, sf.PicturePath as filePath" +\r
-            " FROM SpecimenFigure sf  " \r
-       +       " WHERE (sf.SpecimenFigureId IN (" + ID_LIST_TOKEN + ")  )"  \r
+            " FROM SpecimenFigure sf  "\r
+       +       " WHERE (sf.SpecimenFigureId IN (" + ID_LIST_TOKEN + ")  )"\r
        + " ORDER BY TypeSpecimenFk ";\r
             ;\r
                return strQuery;\r
@@ -81,66 +80,67 @@ public class AlgaTerraTypeImagesImport  extends AlgaTerraImageImportBase {
        /* (non-Javadoc)\r
         * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#doPartition(eu.etaxonomy.cdm.io.berlinModel.in.ResultSetPartitioner, eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState)\r
         */\r
-       public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState bmState) {\r
+       @Override\r
+    public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState bmState) {\r
                boolean success = true;\r
-               \r
+\r
                AlgaTerraImportState state = (AlgaTerraImportState)bmState;\r
-               \r
+\r
                Set<SpecimenOrObservationBase> unitsToSave = new HashSet<SpecimenOrObservationBase>();\r
-               \r
-               Map<String, DerivedUnit> typeSpecimenMap = (Map<String, DerivedUnit>) partitioner.getObjectMap(AlgaTerraSpecimenImportBase.TYPE_SPECIMEN_DERIVED_UNIT_NAMESPACE);\r
-               Map<String, Reference> referenceMap = (Map<String, Reference>) partitioner.getObjectMap(BerlinModelReferenceImport.REFERENCE_NAMESPACE);\r
-               \r
-               \r
+\r
+               Map<String, DerivedUnit> typeSpecimenMap = partitioner.getObjectMap(AlgaTerraSpecimenImportBase.TYPE_SPECIMEN_DERIVED_UNIT_NAMESPACE);\r
+               Map<String, Reference> referenceMap = partitioner.getObjectMap(BerlinModelReferenceImport.REFERENCE_NAMESPACE);\r
+\r
+\r
                ResultSet rs = partitioner.getResultSet();\r
 \r
                try {\r
-                       \r
+\r
                        int i = 0;\r
 \r
                        //for each reference\r
             while (rs.next()){\r
-                \r
+\r
                        if ((i++ % modCount) == 0 && i!= 1 ){ logger.info(pluralString + " handled: " + (i-1));}\r
-                               \r
+\r
                                int figureId = rs.getInt("SpecimenFigureId");\r
                                int typeSpecimenFk = rs.getInt("typeSpecimenFk");\r
-                               \r
-                               \r
+\r
+\r
                                //TODO etc. Created, Notes, Copyright, TermsOfUse etc.\r
-                               \r
+\r
                                try {\r
-                                       \r
+\r
                                        //source ref\r
-                                       Reference<?> sourceRef = state.getTransactionalSourceReference();\r
-                               \r
+                                       Reference sourceRef = state.getTransactionalSourceReference();\r
+\r
                                        DerivedUnit derivedUnit = typeSpecimenMap.get(String.valueOf(typeSpecimenFk));\r
-                                       \r
+\r
                                        if (derivedUnit == null){\r
                                                logger.warn("Could not find type specimen (" + typeSpecimenFk +") for specimen figure " +  figureId);\r
                                        }else{\r
-                                               \r
+\r
                                                //field observation\r
                                                Media media = handleSingleImage(rs, derivedUnit, state, partitioner, PathType.Image);\r
-                                               \r
+\r
                                                handleTypeImageSpecificFields(rs, media, state);\r
-                                               \r
-                                               unitsToSave.add(derivedUnit); \r
+\r
+                                               unitsToSave.add(derivedUnit);\r
                                        }\r
 \r
 \r
                                } catch (Exception e) {\r
                                        logger.warn("Exception in " + getTableName() + ": SpecimenFigureId " + figureId + ". " + e.getMessage());\r
                                        e.printStackTrace();\r
-                               } \r
-                \r
+                               }\r
+\r
             }\r
-           \r
+\r
 //            logger.warn("Specimen: " + countSpecimen + ", Descriptions: " + countDescriptions );\r
 \r
                        logger.warn(pluralString + " to save: " + unitsToSave.size());\r
-                       getOccurrenceService().saveOrUpdate(unitsToSave);       \r
-                       \r
+                       getOccurrenceService().saveOrUpdate(unitsToSave);\r
+\r
                        return success;\r
                } catch (SQLException e) {\r
                        logger.error("SQLException:" +  e);\r
@@ -154,34 +154,33 @@ public class AlgaTerraTypeImagesImport  extends AlgaTerraImageImportBase {
                //TODO refFk, refDetailFk, publishFlag\r
                Integer refFk = nullSafeInt(rs, "refFk");\r
                Integer refDetailFk = nullSafeInt(rs, "refDetailFk");\r
-               \r
+\r
                //TODO\r
-               \r
-               \r
+\r
+\r
        }\r
 \r
        @Override\r
        public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, BerlinModelImportState state) {\r
-               String nameSpace;\r
-               Class<?> cdmClass;\r
+\r
+           String nameSpace;\r
                Set<String> idSet;\r
-               Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();\r
-               \r
+               Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<>();\r
+\r
                try{\r
-                       Set<String> typeSpecimenIdSet = new HashSet<String>();\r
-                       \r
+                       Set<String> typeSpecimenIdSet = new HashSet<>();\r
+\r
                        while (rs.next()){\r
                                handleForeignKey(rs, typeSpecimenIdSet, "TypeSpecimenFk");\r
                        }\r
-                       \r
+\r
                        //type specimen map\r
                        nameSpace = AlgaTerraSpecimenImportBase.TYPE_SPECIMEN_DERIVED_UNIT_NAMESPACE;\r
-                       cdmClass = SpecimenOrObservationBase.class;\r
                        idSet = typeSpecimenIdSet;\r
-                       Map<String, DerivedUnit> typeSpecimenMap = (Map<String, DerivedUnit>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
+                       Map<String, DerivedUnit> typeSpecimenMap = getCommonService().getSourcedObjectsByIdInSourceC(DerivedUnit.class, idSet, nameSpace);\r
                        result.put(nameSpace, typeSpecimenMap);\r
 \r
-                       \r
+\r
                } catch (SQLException e) {\r
                        throw new RuntimeException(e);\r
                }\r
@@ -201,5 +200,5 @@ public class AlgaTerraTypeImagesImport  extends AlgaTerraImageImportBase {
                return !  ( config.isDoTypes() && config.isDoImages()) ;\r
 //             return false;\r
        }\r
-       \r
+\r
 }\r