adapt some classes to new CommonService.getSourcedObjectSByIdInSource and cleanup
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / io / algaterra / AlgaTerraVoucherImagesImport.java
index d59117490b18db1e394ac3a94b71cc983c50e90e..2c8a4d2a50f8bc53529bda7fbd8a6056aad08b1d 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
@@ -24,7 +24,6 @@ import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
 import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState;\r
 import eu.etaxonomy.cdm.io.common.IOValidator;\r
 import eu.etaxonomy.cdm.io.common.ResultSetPartitioner;\r
-import eu.etaxonomy.cdm.io.globis.GlobisImportState;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.media.Media;\r
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
@@ -37,88 +36,82 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
  */\r
 @Component\r
 public class AlgaTerraVoucherImagesImport  extends AlgaTerraImageImportBase {\r
-       private static final Logger logger = Logger.getLogger(AlgaTerraVoucherImagesImport.class);\r
 \r
-       \r
+    private static final long serialVersionUID = -1702110625354900442L;\r
+    private static final Logger logger = Logger.getLogger(AlgaTerraVoucherImagesImport.class);\r
+\r
        private static int modCount = 5000;\r
        private static final String pluralString = "voucher images";\r
-       private static final String dbTableName = "VoucherImages";  //??  \r
-       \r
+       private static final String dbTableName = "VoucherImages";  //??\r
+\r
        public AlgaTerraVoucherImagesImport(){\r
                super(dbTableName, pluralString);\r
        }\r
-       \r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getIdQuery()\r
-        */\r
+\r
        @Override\r
        protected String getIdQuery(BerlinModelImportState state) {\r
-               String result = " SELECT VoucherImageID "  \r
-                               + " FROM VoucherImages " \r
+               String result = " SELECT VoucherImageID "\r
+                               + " FROM VoucherImages "\r
                                + " ORDER BY EcoFactFk ";\r
                return result;\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 strQuery =    \r
-                                               \r
+                       String strQuery =\r
+\r
                                " SELECT vi.*, vi.Comment as FigurePhrase, vi.PictureFile as fileName, vi.PictuePath as filePath " +\r
-                   " FROM VoucherImages vi  " \r
-                   +   " WHERE (vi.VoucherImageID IN (" + ID_LIST_TOKEN + ")  )"  \r
+                   " FROM VoucherImages vi  "\r
+                   +   " WHERE (vi.VoucherImageID IN (" + ID_LIST_TOKEN + ")  )"\r
                    + " ORDER BY EcoFactFk ";\r
-            ;\r
+\r
                return strQuery;\r
        }\r
 \r
-       /* (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(@SuppressWarnings("rawtypes") ResultSetPartitioner partitioner, BerlinModelImportState bmState) {\r
                boolean success = true;\r
-               \r
+\r
                AlgaTerraImportState state = (AlgaTerraImportState)bmState;\r
-               \r
-               Set<SpecimenOrObservationBase> unitsToSave = new HashSet<SpecimenOrObservationBase>();\r
-               \r
-               Map<String, DerivedUnit> ecoFactMap = (Map<String, DerivedUnit>) partitioner.getObjectMap(AlgaTerraSpecimenImportBase.ECO_FACT_DERIVED_UNIT_NAMESPACE);\r
-               \r
+\r
+               @SuppressWarnings("rawtypes")\r
+        Set<SpecimenOrObservationBase> unitsToSave = new HashSet<>();\r
+\r
+               @SuppressWarnings("unchecked")\r
+        Map<String, DerivedUnit> ecoFactMap = partitioner.getObjectMap(AlgaTerraSpecimenImportBase.ECO_FACT_DERIVED_UNIT_NAMESPACE);\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("VoucherImageID");\r
                                int ecoFactFk = rs.getInt("EcoFactFk");\r
-                               \r
-                               \r
+\r
+\r
                                //TODO etc. Created, Notes, Copyright, TermsOfUse etc.\r
-                               \r
+\r
                                try {\r
-                                       \r
+\r
                                        DerivedUnit derivedUnit = ecoFactMap.get(String.valueOf(ecoFactFk));\r
-                                       \r
+\r
                                        if (derivedUnit == null){\r
                                                logger.warn("Could not find eco fact specimen (" + ecoFactFk +") for voucher image " +  figureId);\r
                                        }\r
-                                       \r
+\r
                                        //field observation\r
                                        Media media = handleSingleImage(rs, derivedUnit, state, partitioner, PathType.Voucher);\r
-                                       \r
+\r
                                        handleVoucherImageSpecificFields(rs, media, state);\r
-                                       \r
+\r
                                        if (derivedUnit != null){\r
-                                               unitsToSave.add(derivedUnit); \r
+                                               unitsToSave.add(derivedUnit);\r
                                        }else{\r
                                                logger.warn("DerivedUnit is null");\r
                                        }\r
@@ -126,15 +119,15 @@ public class AlgaTerraVoucherImagesImport  extends AlgaTerraImageImportBase {
                                } catch (Exception e) {\r
                                        logger.warn("Exception in " + getTableName() + ": VoucherImageId " + 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
@@ -146,53 +139,45 @@ public class AlgaTerraVoucherImagesImport  extends AlgaTerraImageImportBase {
 \r
        private void handleVoucherImageSpecificFields(ResultSet rs, Media media, AlgaTerraImportState state) throws SQLException {\r
                //TODO\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> ecoFactIdSet = new HashSet<String>();\r
-                       \r
+                       Set<String> ecoFactIdSet = new HashSet<>();\r
+\r
                        while (rs.next()){\r
                                handleForeignKey(rs, ecoFactIdSet, "EcoFactFk");\r
                        }\r
-                       \r
+\r
                        //type specimen map\r
                        nameSpace = AlgaTerraSpecimenImportBase.ECO_FACT_DERIVED_UNIT_NAMESPACE;\r
-                       cdmClass = DerivedUnit.class;\r
                        idSet = ecoFactIdSet;\r
-                       Map<String, DerivedUnit> specimenMap = (Map<String,DerivedUnit>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);\r
+                       Map<String, DerivedUnit> specimenMap = getCommonService().getSourcedObjectsByIdInSourceC(DerivedUnit.class, idSet, nameSpace);\r
                        result.put(nameSpace, specimenMap);\r
 \r
-                       \r
+\r
                } catch (SQLException e) {\r
                        throw new RuntimeException(e);\r
                }\r
                return result;\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IoStateBase)\r
-        */\r
        @Override\r
        protected boolean doCheck(BerlinModelImportState state){\r
                IOValidator<BerlinModelImportState> validator = new AlgaTerraTypeImportValidator();\r
                return validator.validate(state);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)\r
-        */\r
-       protected boolean isIgnore(BerlinModelImportState bmState){\r
+       @Override\r
+    protected boolean isIgnore(BerlinModelImportState bmState){\r
                AlgaTerraImportConfigurator config = ((AlgaTerraImportState) bmState).getAlgaTerraConfigurator();\r
                return !  ( config.isDoEcoFacts() && config.isDoImages()) ;\r
        }\r
-       \r
 }\r